Update jsonUnit to v3 (major) (#1670) #2702
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-13 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Build Library | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: 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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run Checkstyle | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: checkstyle --scan | |
- name: Archive Checkstyle results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run ktlint | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: :build-logic:ktlintCheck ktlintCheck --scan | |
- name: Archive ktlint results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run Lint Checks | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: lint --scan | |
- name: Archive lint results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Cache Maven | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Run Unit Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: test jvmTest koverXmlReport --scan | |
- name: Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
- name: Archive Unit Test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-unit-test-results-${{ matrix.testShard }} | |
path: "**/build/reports/tests/" | |
- name: Archive kover results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-kover-results-${{ matrix.testShard }} | |
path: "**/build/reports/kover/" | |
ios_tests: | |
name: iOS Unit Tests | |
runs-on: macos-13 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run iOS Unit Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: 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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Run JS Unit Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: jsBrowserTest jsNodeTest --scan | |
- name: Archive test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
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@v5 | |
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-13 | |
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: Cache Konan | |
uses: actions/cache@v3 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ github.sha }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Publish library | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: publish --scan | |
env: | |
ORG_GRADLE_PROJECT_cruGlobalMavenRepositoryUsername: ${{ secrets.DEPLOY_USERNAME }} | |
ORG_GRADLE_PROJECT_cruGlobalMavenRepositoryPassword: ${{ secrets.DEPLOY_PASSWORD }} |