Add PetFinder Module for database example #3576
Workflow file for this run
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 : Kotlin CI | |
on : | |
push : | |
branches : | |
- main | |
pull_request : | |
merge_group : | |
# If CI is already running for a branch when that branch is updated, cancel the older jobs. | |
concurrency : | |
group : ci-${{ github.ref }}-${{ github.head_ref }} | |
cancel-in-progress : true | |
jobs : | |
build-all : | |
name : Build all | |
runs-on : macos-latest | |
steps : | |
- uses : actions/checkout@v3 | |
- name : main build | |
uses : ./.github/actions/gradle-task | |
with : | |
task : compileKotlin assembleDebug | |
write-cache-key : main-build-artifacts | |
dokka : | |
name : Assemble & Dokka | |
runs-on : ubuntu-latest | |
needs : build-all | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Run dokka to validate kdoc | |
uses : ./.github/actions/gradle-task | |
with : | |
task : siteDokka | |
write-cache-key : main-build-artifacts | |
shards-and-version : | |
name : Shard Matrix Yaml | |
runs-on : ubuntu-latest | |
steps : | |
- uses : actions/checkout@v3 | |
- name : check published artifacts | |
uses : ./.github/actions/gradle-task-with-commit | |
with : | |
check-task : connectedCheckShardMatrixYamlCheck checkVersionIsSnapshot | |
fix-task : connectedCheckShardMatrixYamlUpdate checkVersionIsSnapshot | |
personal-access-token: ${{ secrets.PR_UPDATE_TOKEN }} | |
write-cache-key : build-logic | |
artifacts-check : | |
name : ArtifactsCheck | |
# the `artifactsCheck` task has to run on macOS in order to see the iOS KMP artifacts | |
runs-on : macos-latest | |
steps : | |
- uses : actions/checkout@v3 | |
- name : check published artifacts | |
uses : ./.github/actions/gradle-task-with-commit | |
with : | |
check-task : artifactsCheck | |
fix-task : artifactsDump | |
personal-access-token: ${{ secrets.PR_UPDATE_TOKEN }} | |
write-cache-key : build-logic | |
dependency-guard : | |
name : Dependency Guard | |
runs-on : ubuntu-latest | |
steps : | |
- uses : actions/checkout@v3 | |
# If the PR was made by a maintainer or Renovate, automatically update baselines and push | |
# so that no one has to check out the branch and update the baselines manually. | |
- name : dependency-guard | |
uses : ./.github/actions/gradle-task-with-commit | |
with : | |
check-task : dependencyGuard --refresh-dependencies | |
fix-task : dependencyGuardBaseline --refresh-dependencies | |
personal-access-token: ${{ secrets.PR_UPDATE_TOKEN }} | |
write-cache-key : build-logic | |
ktlint : | |
name : KtLint | |
runs-on : ubuntu-latest | |
steps : | |
- uses : actions/checkout@v3 | |
# If the PR was made by a maintainer or Renovate, automatically format and push | |
# so that no one has to check out the branch and do it manually. | |
- name : KtLint | |
uses : ./.github/actions/gradle-task-with-commit | |
with : | |
check-task : ktLintCheck | |
fix-task : ktLintFormat | |
personal-access-token: ${{ secrets.PR_UPDATE_TOKEN }} | |
write-cache-key : build-logic | |
api-check : | |
name : Api check | |
runs-on : ubuntu-latest | |
steps : | |
- uses : actions/checkout@v3 | |
# If the PR was made by a maintainer or Renovate, automatically format and push | |
# so that no one has to check out the branch and do it manually. | |
- name : binary compatibility | |
uses : ./.github/actions/gradle-task-with-commit | |
with : | |
check-task : apiCheck | |
fix-task : apiDump | |
personal-access-token: ${{ secrets.PR_UPDATE_TOKEN }} | |
write-cache-key : build-logic | |
android-lint : | |
name : Android Lint | |
runs-on : ubuntu-latest | |
needs : build-all | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : lint | |
write-cache-key : main-build-artifacts | |
check : | |
name : Check | |
runs-on : ubuntu-latest | |
needs : build-all | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : | | |
allTests | |
test | |
--continue | |
restore-cache-key : build-logic | |
write-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
tutorials : | |
name : Build Tutorials | |
runs-on : ubuntu-latest | |
timeout-minutes : 15 | |
steps : | |
# These setup steps should be common across all jobs in this workflow. | |
- uses : actions/checkout@v3 | |
- name : build tutorials | |
uses : ./.github/actions/gradle-task | |
with : | |
task : build | |
build-root-directory : samples/tutorial | |
restore-cache-key : main-build-artifacts | |
jvm-conflate-runtime-test : | |
name : Conflate Stale Renderings Runtime JVM Tests | |
runs-on : ubuntu-latest | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : jvmTest --continue -Pworkflow.runtime=conflate | |
restore-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
jvm-stateChange-runtime-test : | |
name : Render On State Change Only Runtime JVM Tests | |
runs-on : ubuntu-latest | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : jvmTest --continue -Pworkflow.runtime=baseline-stateChange | |
restore-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
jvm-conflate-stateChange-runtime-test : | |
name : Render On State Change Only and Conflate Stale Runtime JVM Tests | |
runs-on : ubuntu-latest | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : jvmTest --continue -Pworkflow.runtime=conflate-stateChange | |
restore-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
ios-tests : | |
name : iOS Tests | |
runs-on : macos-latest | |
timeout-minutes : 30 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : iosX64Test | |
restore-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
js-tests : | |
name : JS Tests | |
runs-on : ubuntu-latest | |
timeout-minutes : 20 | |
steps : | |
- uses : actions/checkout@v3 | |
## JS Specific Tests (for KMP js actuals in core and runtime). | |
- name : Check with Gradle | |
uses : ./.github/actions/gradle-task | |
with : | |
task : jsTest | |
restore-cache-key : main-build-artifacts | |
# Report as GitHub Pull Request Check. | |
- name : Publish Test Report | |
uses : mikepenz/action-junit-report@v3 | |
if : always() # always run even if the previous step fails | |
with : | |
report_paths : '**/build/test-results/test/TEST-*.xml' | |
performance-tests : | |
name : Performance tests | |
runs-on : macos-latest | |
timeout-minutes : 30 | |
strategy : | |
# Allow tests to continue on other devices if they fail on one device. | |
fail-fast : false | |
matrix : | |
api-level : | |
- 29 | |
# Unclear that older versions actually honor command to disable animation. | |
# Newer versions are reputed to be too slow: https://github.com/ReactiveCircus/android-emulator-runner/issues/222 | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Instrumented tests | |
uses : ./.github/actions/gradle-tasks-with-emulator | |
with : | |
api-level : ${{ matrix.api-level }} | |
prepare-task : :benchmarks:performance-poetry:complex-poetry:prepareDebugAndroidTestArtifacts | |
test-task : :benchmarks:performance-poetry:complex-poetry:connectedCheck --continue | |
restore-cache-key : androidTest-build-artifacts | |
instrumentation-tests : | |
name : Instrumentation tests | |
runs-on : macos-latest | |
timeout-minutes : 45 | |
strategy : | |
# Allow tests to continue on other devices if they fail on one device. | |
fail-fast : false | |
matrix : | |
# Unclear that older versions actually honor command to disable animation. | |
# Newer versions are reputed to be too slow: https://github.com/ReactiveCircus/android-emulator-runner/issues/222 | |
api-level : | |
- 29 | |
### <start-connected-check-shards> | |
shardNum : [ 1, 2, 3 ] | |
### <end-connected-check-shards> | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Instrumented tests | |
uses : ./.github/actions/gradle-tasks-with-emulator | |
with : | |
api-level : ${{ matrix.api-level }} | |
prepare-task : prepareConnectedCheckShard${{matrix.shardNum}} | |
test-task : connectedCheckShard${{matrix.shardNum}} -x :benchmarks:dungeon-benchmark:connectedCheck -x :benchmarks:performance-poetry:complex-benchmark:connectedCheck -x :benchmarks:performance-poetry:complex-poetry:connectedCheck | |
write-cache-key : androidTest-build-artifacts-${{matrix.shardNum}} | |
restore-cache-key : main-build-artifacts | |
runtime-instrumentation-tests : | |
name : Conflate Stale Renderings Instrumentation tests | |
runs-on : macos-latest | |
timeout-minutes : 45 | |
strategy : | |
# Allow tests to continue on other devices if they fail on one device. | |
fail-fast : false | |
matrix : | |
api-level : | |
- 29 | |
### <start-connected-check-shards> | |
shardNum : [ 1, 2, 3 ] | |
### <end-connected-check-shards> | |
runtime : [ conflate, baseline-stateChange, conflate-stateChange ] | |
steps : | |
- uses : actions/checkout@v3 | |
- name : Instrumented tests | |
uses : ./.github/actions/gradle-tasks-with-emulator | |
with : | |
api-level : ${{ matrix.api-level }} | |
prepare-task : prepareConnectedCheckShard${{matrix.shardNum}} -Pworkflow.runtime=${{matrix.runtime}} | |
test-task : connectedCheckShard${{matrix.shardNum}} -Pworkflow.runtime=${{matrix.runtime}} -x :benchmarks:dungeon-benchmark:connectedCheck -x :benchmarks:performance-poetry:complex-benchmark:connectedCheck -x :benchmarks:performance-poetry:complex-poetry:connectedCheck | |
write-cache-key : androidTest-build-artifacts-${{matrix.shardNum}}-${{matrix.runtime}} | |
restore-cache-key : main-build-artifacts | |
all-green : | |
if : always() | |
runs-on : ubuntu-latest | |
needs : | |
- android-lint | |
- api-check | |
- artifacts-check | |
- check | |
- dependency-guard | |
- dokka | |
- instrumentation-tests | |
- ios-tests | |
- js-tests | |
- jvm-conflate-runtime-test | |
- jvm-conflate-stateChange-runtime-test | |
- jvm-stateChange-runtime-test | |
- ktlint | |
- performance-tests | |
- runtime-instrumentation-tests | |
- shards-and-version | |
- tutorials | |
steps : | |
- name : require that all other jobs have passed | |
uses : re-actors/alls-green@release/v1 | |
with : | |
jobs : ${{ toJSON(needs) }} |