Update plugin org.gradle.toolchains.foojay-resolver-convention to v0.9.0 #3663
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build GTO-Support | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
schedule: | |
- cron: '0 0 1 * *' | |
workflow_dispatch: | |
inputs: | |
triggerRelease: | |
description: 'Release Build' | |
required: false | |
type: boolean | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
ORG_GRADLE_PROJECT_releaseBuild: ${{ github.event_name == 'workflow_dispatch' && inputs.triggerRelease && github.ref == 'refs/heads/master' }} | |
ORG_GRADLE_PROJECT_versionSuffix: ${{ (github.event_name == 'pull_request' && format('PR{0}', github.event.pull_request.number)) || '' }} | |
jobs: | |
build: | |
name: Build Library | |
runs-on: macos-14 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Build Library | |
run: ./gradlew assemble --scan | |
checkstyle: | |
name: Checkstyle | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run Checkstyle | |
run: ./gradlew checkstyle --scan | |
- name: Archive Checkstyle results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: checkstyle-results | |
path: "**/build/reports/checkstyle/" | |
ktlint: | |
name: ktlint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run ktlint | |
run: ./gradlew :build-logic:ktlintCheck ktlintCheck --scan | |
- name: Archive ktlint results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ktlint-results | |
path: "**/build/reports/ktlint/" | |
lint: | |
name: Lint Checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run Lint Checks | |
run: ./gradlew lint --scan | |
- name: Archive lint results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: lint-results | |
path: "**/build/reports/lint-results*.*" | |
android_tests: | |
name: Android & Java Unit Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
testShard: [1, 2] | |
env: | |
ORG_GRADLE_PROJECT_testShard: ${{ matrix.testShard }} | |
ORG_GRADLE_PROJECT_testTotalShards: 2 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Cache Maven | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Run Unit Tests | |
run: ./gradlew test jvmTest koverXmlReport --scan | |
- name: Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
- name: Archive Unit Test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-unit-test-results-${{ matrix.testShard }} | |
path: "**/build/reports/tests/" | |
- name: Archive kover results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-kover-results-${{ matrix.testShard }} | |
path: "**/build/reports/kover/" | |
ios_tests: | |
name: iOS Unit Tests | |
runs-on: macos-14 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run iOS Unit Tests | |
run: ./gradlew iosX64Test iosX64BackgroundTest --scan | |
js_tests: | |
name: JS Unit Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run JS Unit Tests | |
run: ./gradlew jsBrowserTest jsNodeTest --scan | |
- name: Archive test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: js-unit-test-results | |
path: "**/build/reports/tests/" | |
check_version: | |
name: Check Version is Unreleased | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.version.outputs.version }} | |
tag: ${{ steps.tag_name.outputs.tag }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Find Version | |
id: version | |
run: grep ^version= gradle.properties >> $GITHUB_OUTPUT | |
- name: Generate Tag Name | |
id: tag_name | |
run: echo tag=$TAG_NAME >> $GITHUB_OUTPUT | |
env: | |
TAG_NAME: v${{ steps.version.outputs.version }} | |
- name: Check if version was already released | |
run: "! git ls-remote -t --exit-code origin $TAG_NAME" | |
env: | |
TAG_NAME: ${{ steps.tag_name.outputs.tag }} | |
tag_release: | |
name: Tag Release & Bump Version | |
runs-on: ubuntu-latest | |
if: github.event_name == 'workflow_dispatch' && inputs.triggerRelease && github.ref == 'refs/heads/master' | |
needs: [ build, checkstyle, ktlint, lint, android_tests, ios_tests, js_tests, check_version ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Create Tag | |
env: | |
TAG_NAME: ${{ needs.check_version.outputs.tag }} | |
run: | | |
git tag $TAG_NAME | |
git push origin $TAG_NAME | |
# TODO: actions-ecosystem/action-push-tag@v1 is not currently functional, see: https://github.com/actions-ecosystem/action-push-tag/issues/10 | |
# uses: actions-ecosystem/action-push-tag@v1 | |
# with: | |
# tag: ${{ needs.check_version.outputs.tag }} | |
- name: Generate next version | |
id: bump_version | |
uses: actions-ecosystem/action-bump-semver@v1 | |
with: | |
current_version: ${{ needs.check_version.outputs.version }} | |
level: patch | |
- name: Update version for new development | |
run: sed -i "s/version=${{ needs.check_version.outputs.version }}/version=${{ steps.bump_version.outputs.new_version }}/" gradle.properties | |
- name: Create Version Bump Pull Request | |
uses: peter-evans/create-pull-request@v7 | |
with: | |
branch: "versionBump/${{ steps.bump_version.outputs.new_version }}" | |
title: "Bump version after release" | |
commit-message: "Bump version to ${{steps.bump_version.outputs.new_version}}" | |
deploy: | |
name: Deploy Library | |
runs-on: macos-14 | |
if: | | |
(github.event_name == 'push' && github.ref == 'refs/heads/master') || | |
(github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Publish PR SNAPSHOT')) || | |
(github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/master') || | |
github.event_name == 'schedule' | |
needs: [ build, checkstyle, ktlint, lint, android_tests, ios_tests, js_tests, check_version ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Cache Konan | |
uses: actions/cache@v4 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Publish library | |
run: ./gradlew publish --scan | |
env: | |
ORG_GRADLE_PROJECT_cruGlobalMavenRepositoryUsername: ${{ secrets.DEPLOY_USERNAME }} | |
ORG_GRADLE_PROJECT_cruGlobalMavenRepositoryPassword: ${{ secrets.DEPLOY_PASSWORD }} |