Skip to content

Commit

Permalink
GitHub Actions cache fixes (#3723)
Browse files Browse the repository at this point in the history
* Run Gradle actions with gradle/gradle-build-action

This action handles caching of:
- Wrapper distribution
- Downloaded dependencies
- Build cache
- Configuration cache

https://github.com/gradle/gradle-build-action/blob/v2.0.0/README.md#caching

* Don't manually disable Gradle daemon

gradle-build-action runs Gradle tasks with --no-daemon flag already

* Enable Gradle's configuration cache on supported CI tasks
  • Loading branch information
3flex committed Nov 11, 2021
1 parent 7479bda commit c6f796a
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 104 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/codecoverage.yaml
Expand Up @@ -12,8 +12,6 @@ jobs:
publish-code-coverage:
if: ${{ !contains(github.event.head_commit.message, 'coverage skip') }}
runs-on: ubuntu-latest
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2
Expand All @@ -25,7 +23,9 @@ jobs:
distribution: 'temurin'

- name: Generate Coverage Report
run: ./gradlew jacocoMergedReport
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache jacocoMergedReport

- name: Publish Coverage
if: success()
Expand Down
20 changes: 6 additions & 14 deletions .github/workflows/deploy-snapshot.yaml
Expand Up @@ -9,34 +9,26 @@ jobs:
gradle:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'temurin'

- name: Build detekt
run: ./gradlew build
uses: gradle/gradle-build-action@v2
with:
arguments: build

- name: Deploy Snapshot
uses: gradle/gradle-build-action@v2
env:
MAVEN_CENTRAL_USER: ${{ secrets.MAVEN_CENTRAL_USER }}
MAVEN_CENTRAL_PW: ${{ secrets.MAVEN_CENTRAL_PW }}
run: ./gradlew publishAllPublicationsToSonatypeSnapshotRepository -Dsnapshot=true --stacktrace
with:
arguments: publishAllPublicationsToSonatypeSnapshotRepository -Dsnapshot=true --stacktrace
if: ${{ github.repository == 'detekt/detekt'}}
17 changes: 3 additions & 14 deletions .github/workflows/deploy-website.yaml
Expand Up @@ -8,31 +8,20 @@ on:
jobs:
build-detekt-docs:
runs-on: ubuntu-latest
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false

steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'

- name: Build Detekt Documentation
run: ./gradlew :detekt-generator:generateDocumentation
uses: gradle/gradle-build-action@v2
with:
arguments: :detekt-generator:generateDocumentation

- name: Upload Generated Rules documentation
uses: actions/upload-artifact@v2
Expand Down
31 changes: 6 additions & 25 deletions .github/workflows/detekt-with-type-resolution.yaml
Expand Up @@ -12,30 +12,20 @@ jobs:
plain:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'

- name: Run detekt-cli with argsfile
run: ./gradlew :detekt-cli:runWithArgsFile
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache :detekt-cli:runWithArgsFile

- name: Upload SARIF to Github using the upload-sarif action
uses: github/codeql-action/upload-sarif@v1
Expand All @@ -47,25 +37,16 @@ jobs:
gradle:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'
- name: Run analysis
run: ./gradlew detektMain detektTest
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache detektMain detektTest
2 changes: 0 additions & 2 deletions .github/workflows/fossascan.yaml
Expand Up @@ -9,8 +9,6 @@ jobs:
fossa-scan:
if: ${{ github.repository == 'detekt/detekt' }}
runs-on: ubuntu-latest
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2
Expand Down
61 changes: 15 additions & 46 deletions .github/workflows/pre-merge.yaml
Expand Up @@ -17,91 +17,60 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]
jdk: [8, 11, 17]
runs-on: ${{ matrix.os }}
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-${{ matrix.os }}-${{ matrix.jdk }}-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-${{ matrix.os }}-${{ matrix.jdk }}-
cache-gradle-${{ matrix.os }}-
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.jdk }}
distribution: 'temurin'
- name: Build detekt
run: ./gradlew build -x detekt
uses: gradle/gradle-build-action@v2
with:
arguments: build -x detekt
- uses: actions/upload-artifact@v2
with:
name: heap-dump
path: '**.hprof'
if-no-files-found: ignore
- name: Run detekt-cli --help
run: ./gradlew :detekt-cli:runWithHelpFlag
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache :detekt-cli:runWithHelpFlag
- name: Run detekt-cli with argsfile
run: ./gradlew :detekt-cli:runWithArgsFile
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache :detekt-cli:runWithArgsFile

verify-generated-config-file:
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
runs-on: ubuntu-latest
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-ubuntu-latest-11-verifygenerator-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-ubuntu-latest-11-verifygenerator-
cache-gradle-ubuntu-latest-11-
cache-gradle-ubuntu-latest-
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'
- name: Verify Generated Detekt Config File
run: ./gradlew verifyGeneratorOutput
uses: gradle/gradle-build-action@v2
with:
arguments: verifyGeneratorOutput

compile-test-snippets:
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
runs-on: ubuntu-latest
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache Gradle Folders
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: cache-gradle-ubuntu-latest-11-compiletestsnippets-${{ hashFiles('gradle/libs.versions.toml') }}
restore-keys: |
cache-gradle-ubuntu-latest-11-compiletestsnippets-
cache-gradle-ubuntu-latest-11-
cache-gradle-ubuntu-latest-
cache-gradle-
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'
- name: Build and compile test snippets
run: ./gradlew test -x ":detekt-gradle-plugin:test" -Pcompile-test-snippets=true
uses: gradle/gradle-build-action@v2
with:
arguments: --configuration-cache test -x :detekt-gradle-plugin:test -Pcompile-test-snippets=true

0 comments on commit c6f796a

Please sign in to comment.