Skip to content

Commit

Permalink
Write build and test cache for all branches (#182)
Browse files Browse the repository at this point in the history
  • Loading branch information
philipp94831 authored Feb 28, 2024
1 parent 71666f5 commit 5d84083
Show file tree
Hide file tree
Showing 27 changed files with 298 additions and 172 deletions.
22 changes: 19 additions & 3 deletions .github/workflows/java-gradle-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ on:
required: false
type: boolean
default: true
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false)"
required: false
type: boolean
default: false
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
type: boolean
default: false
gradle-version:
description: "Gradle version to be installed. (Default is wrapper)"
required: false
Expand Down Expand Up @@ -62,12 +72,14 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Build
uses: bakdata/ci-templates/actions/java-gradle-build@v1.16.0
uses: bakdata/ci-templates/actions/java-gradle-build@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

test:
Expand All @@ -76,9 +88,11 @@ jobs:
needs: build
steps:
- name: Run unit tests
uses: bakdata/ci-templates/actions/java-gradle-test@1.39.0
uses: bakdata/ci-templates/actions/java-gradle-test@1.42.0
with:
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
gradle-version: ${{ inputs.gradle-version }}
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
Expand All @@ -90,10 +104,12 @@ jobs:
needs: test
steps:
- name: Assess code quality
uses: bakdata/ci-templates/actions/java-gradle-assess-code-quality@1.39.0
uses: bakdata/ci-templates/actions/java-gradle-assess-code-quality@1.42.0
with:
download-lfs-files: ${{ inputs.download-lfs-files }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
gradle-version: ${{ inputs.gradle-version }}
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
Expand Down
22 changes: 19 additions & 3 deletions .github/workflows/java-gradle-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ on:
required: false
type: boolean
default: true
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false)"
required: false
type: boolean
default: false
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
type: boolean
default: false
working-directory:
description: "Working directory of your Gradle artifacts. (Default is .)"
required: false
Expand Down Expand Up @@ -76,12 +86,14 @@ concurrency:
jobs:
build-and-test:
name: Build, Test and Assess code quality
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.40.5
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}
secrets:
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -97,12 +109,14 @@ jobs:

steps:
- name: Build tarball image
uses: bakdata/ci-templates/actions/java-gradle-build-jib@v1.16.0
uses: bakdata/ci-templates/actions/java-gradle-build-jib@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

publish:
Expand All @@ -112,7 +126,7 @@ jobs:

steps:
- name: Publish
uses: bakdata/ci-templates/actions/java-gradle-publish@1.41.0
uses: bakdata/ci-templates/actions/java-gradle-publish@1.42.0
with:
signing-secret-key-ring: ${{ secrets.signing-secret-key-ring }}
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -123,6 +137,8 @@ jobs:
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

publish-jib-image:
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/java-gradle-library.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@ on:
required: false
type: boolean
default: true
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false)"
required: false
type: boolean
default: false
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
type: boolean
default: false
working-directory:
description: "Working directory of your Gradle artifacts. (Default is .)"
required: false
Expand Down Expand Up @@ -66,12 +76,14 @@ concurrency:
jobs:
build-and-test:
name: Build, Test and Assess code quality
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.40.5
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

secrets:
Expand All @@ -88,7 +100,7 @@ jobs:

steps:
- name: Publish
uses: bakdata/ci-templates/actions/java-gradle-publish@1.41.0
uses: bakdata/ci-templates/actions/java-gradle-publish@1.42.0
with:
signing-secret-key-ring: ${{ secrets.signing-secret-key-ring }}
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -99,6 +111,8 @@ jobs:
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

release:
Expand Down
22 changes: 19 additions & 3 deletions .github/workflows/java-gradle-plugin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@ on:
required: false
type: boolean
default: true
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false)"
required: false
type: boolean
default: false
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
type: boolean
default: false
working-directory:
description: "Working directory of your Gradle artifacts. (Default is .)"
required: false
Expand Down Expand Up @@ -72,12 +82,14 @@ concurrency:
jobs:
build-and-test:
name: Build, Test and Assess code quality
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.40.5
uses: bakdata/ci-templates/.github/workflows/java-gradle-base.yaml@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}
secrets:
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -93,7 +105,7 @@ jobs:

steps:
- name: Publish
uses: bakdata/ci-templates/actions/java-gradle-publish@1.41.0
uses: bakdata/ci-templates/actions/java-gradle-publish@1.42.0
with:
signing-secret-key-ring: ${{ secrets.signing-secret-key-ring }}
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -104,6 +116,8 @@ jobs:
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

publish-plugin:
Expand All @@ -114,7 +128,7 @@ jobs:

steps:
- name: Publish plugin
uses: bakdata/ci-templates/actions/java-gradle-publish-plugin@1.40.6
uses: bakdata/ci-templates/actions/java-gradle-publish-plugin@1.42.0
with:
signing-secret-key-ring: ${{ secrets.signing-secret-key-ring }}
signing-key-id: ${{ secrets.signing-key-id }}
Expand All @@ -125,6 +139,8 @@ jobs:
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }}
working-directory: ${{ inputs.working-directory }}

release:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/java-gradle-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
steps:
- name: Release on Github
id: release
uses: bakdata/ci-templates/actions/java-gradle-release@1.38.0
uses: bakdata/ci-templates/actions/java-gradle-release@1.42.0
with:
release-type: ${{ inputs.release-type }}
changelog-file: "${{ inputs.changelog-file }}"
Expand All @@ -79,4 +79,5 @@ jobs:
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: true
working-directory: ${{ inputs.working-directory }}
13 changes: 11 additions & 2 deletions actions/java-gradle-assess-code-quality/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ inputs:
description: "Whether Gradle caching is enabled or not. (Default is true)"
required: false
default: true
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches."
required: false
default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
default: "false"
gradle-version:
description: "Gradle version to be installed. (Default is wrapper)"
required: false
Expand Down Expand Up @@ -52,17 +60,18 @@ runs:
lfs: ${{ inputs.download-lfs-files }}

- name: Set up Gradle with version ${{ inputs.gradle-version }}
uses: bakdata/ci-templates/actions/java-gradle-setup@v1.16.0
uses: bakdata/ci-templates/actions/java-gradle-setup@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}

# sonar.branch.autoconfig.disabled is necessary for autocreation of projects on Sonarcloud to work
- name: Assess code quality
if: ${{ inputs.sonar-token != '' && inputs.sonar-organization != '' }}
run: ./gradlew -Dsonar.branch.autoconfig.disabled=true -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=${{ inputs.sonar-organization }} --info --stacktrace sonarqube
run: ./gradlew -Dsonar.branch.autoconfig.disabled=true -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=${{ inputs.sonar-organization }} --info --stacktrace sonarqube ${{ inputs.gradle-refresh-dependencies && '--refresh-dependencies' || '' }}
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
Expand Down
14 changes: 12 additions & 2 deletions actions/java-gradle-build-jib/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ inputs:
description: "Whether Gradle caching is enabled or not. (Default is true)"
required: false
default: "true"
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches."
required: false
default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
default: "false"
working-directory:
description: "Working directory of your Gradle artifacts. (Default is .)"
required: false
Expand All @@ -49,20 +57,22 @@ runs:
lfs: ${{ inputs.download-lfs-files }}

- name: Set up Gradle with version ${{ inputs.gradle-version }}
uses: bakdata/ci-templates/actions/java-gradle-setup@v1.16.0
uses: bakdata/ci-templates/actions/java-gradle-setup@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}

- name: Build Docker image
run: |
./gradlew ${{ inputs.subproject && format('{0}:', inputs.subproject) || '' }}jibBuildTar \
--info --stacktrace \
--image=${{ inputs.image-name }} \
${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \
-x test
-x test \
${{ inputs.gradle-refresh-dependencies && '--refresh-dependencies' || '' }}
shell: bash
working-directory: ${{ inputs.working-directory }}

Expand Down
13 changes: 11 additions & 2 deletions actions/java-gradle-build/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ inputs:
description: "Whether Gradle caching is enabled or not. (Default is true)"
required: false
default: "true"
gradle-cache-read-only:
description: "Whether Gradle caching should be read-only. By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches."
required: false
default: ${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}
gradle-refresh-dependencies:
description: "Whether Gradle should refresh dependencies. (Default is false)"
required: false
default: "false"
working-directory:
description: "Working directory of your Gradle artifacts. (Default is .)"
required: false
Expand All @@ -33,15 +41,16 @@ runs:
uses: bakdata/ci-templates/actions/[email protected]

- name: Set up Gradle with version ${{ inputs.gradle-version }}
uses: bakdata/ci-templates/actions/java-gradle-setup@v1.16.0
uses: bakdata/ci-templates/actions/java-gradle-setup@1.42.0
with:
java-distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
gradle-version: ${{ inputs.gradle-version }}
gradle-cache: ${{ inputs.gradle-cache }}
gradle-cache-read-only: ${{ inputs.gradle-cache-read-only }}

- name: Compile
run: ./gradlew --info --stacktrace build -x test
run: ./gradlew --info --stacktrace build -x test ${{ inputs.gradle-refresh-dependencies && '--refresh-dependencies' || '' }}
shell: bash
working-directory: ${{ inputs.working-directory }}

Expand Down
Loading

0 comments on commit 5d84083

Please sign in to comment.