This repository has been archived by the owner on Nov 12, 2024. It is now read-only.
Update dependency co.touchlab:kermit to v2 #3471
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: CI | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- v* | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
code-style: | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
env: | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: Check convention plugins code style with Spotless | |
run: ./gradlew -p gradle/build-logic spotlessCheck | |
- name: Check code style with Spotless | |
run: ./gradlew spotlessCheck | |
- name: Check code style with SwiftLint | |
run: bundle exec fastlane ios lint | |
android: | |
needs: [code-style] | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
env: | |
ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
ORG_GRADLE_PROJECT_TIVI_RELEASE_KEYSTORE_PWD: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_RELEASE_KEYSTORE_PWD }} | |
ORG_GRADLE_PROJECT_TIVI_RELEASE_KEY_PWD: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_RELEASE_KEY_PWD }} | |
steps: | |
- name: Generate build number | |
shell: bash | |
run: echo "ORG_GRADLE_PROJECT_TIVI_VERSIONCODE=$(( $GITHUB_RUN_NUMBER + 10000 ))" >> $GITHUB_ENV | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: Decrypt secrets | |
run: ./release/decrypt-secrets.sh | |
env: | |
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
- name: Build Android App (skipping benchmark variant) | |
run: | | |
./gradlew \ | |
testDebugUnitTest \ | |
:android-app:app:bundle \ | |
:android-app:app:build \ | |
lint \ | |
-x :android-app:app:assembleStandardBenchmark \ | |
-x :android-app:app:bundleStandardBenchmark | |
# - name: Run smoke tests on Gradle Managed Device | |
# # --info used to add a repro to https://issuetracker.google.com/issues/193118030 | |
# # config cache is disabled due to https://issuetracker.google.com/issues/262270582 | |
# run: | | |
# ./gradlew api31QaDebugAndroidTest \ | |
# -Dorg.gradle.workers.max=1 \ | |
# -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" \ | |
# --info \ | |
# --no-configuration-cache | |
- name: Clean secrets | |
if: always() | |
run: ./release/clean-secrets.sh | |
- name: Upload build outputs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-build-outputs | |
path: android-app/app/build/outputs | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-test-results | |
path: | | |
**/build/test-results/* | |
desktop: | |
needs: [code-style] | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
env: | |
ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v1 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: Build Desktop App | |
run: ./gradlew jvmTest :desktop-app:packageDistributionForCurrentOS | |
- name: Upload build outputs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: desktop-build-binaries | |
path: desktop-app/build/compose/binaries | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: desktop-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: desktop-test-results | |
path: | | |
**/build/test-results/* | |
ios-qa-app: | |
needs: [code-style] | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
env: | |
ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: Decrypt secrets | |
run: ./release/decrypt-secrets.sh | |
env: | |
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
- name: Build iOS application | |
run: bundle exec fastlane ios build_qa | |
env: | |
API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | |
API_KEY_CONTENTS: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENTS }} | |
ISSUER_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_ISSUER_ID }} | |
MATCH_PASSWORD: ${{ secrets.FASTLANE_MATCH_PASSWORD }} | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.FASTLANE_MATCH_GH_PAT }} | |
TIVI_BUILD_NUMBER: ${{ github.run_number }} | |
- name: Upload build outputs | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-qa-build-outputs | |
path: | | |
*.ipa | |
*.dSYM.zip | |
- name: Upload build logs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-qa-logs | |
path: | | |
**/fastlane-buildlog | |
ios-prod-app: | |
needs: [code-style] | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
env: | |
ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60 | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: Decrypt secrets | |
run: ./release/decrypt-secrets.sh | |
env: | |
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
- name: Build iOS application | |
run: bundle exec fastlane ios build_prod | |
env: | |
API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | |
API_KEY_CONTENTS: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENTS }} | |
ISSUER_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_ISSUER_ID }} | |
MATCH_PASSWORD: ${{ secrets.FASTLANE_MATCH_PASSWORD }} | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.FASTLANE_MATCH_GH_PAT }} | |
TIVI_BUILD_NUMBER: ${{ github.run_number }} | |
- name: Upload build outputs | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-prod-build-outputs | |
path: | | |
*.ipa | |
*.dSYM.zip | |
- name: Upload build logs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-prod-logs | |
path: | | |
**/fastlane-buildlog | |
ios-test: | |
needs: [code-style] | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
if: ${{ false }} # Disable for now | |
env: | |
ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TMDB_API_KEY }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }} | |
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_URL }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_USERNAME }} | |
ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_REMOTE_BUILD_CACHE_PASSWORD }} | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
cache-disabled: true | |
- name: iosX64Test | |
# Disable CC due to https://github.com/google/ksp/issues/1463 | |
run: ./gradlew iosX64Test --no-configuration-cache | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-test-results | |
path: | | |
**/build/test-results/* | |
publish: | |
if: github.ref == 'refs/heads/main' | |
needs: [android, ios-qa-app, ios-prod-app, desktop] | |
runs-on: macos-latest | |
timeout-minutes: 40 | |
env: | |
API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | |
API_KEY_CONTENTS: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENTS }} | |
ISSUER_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_ISSUER_ID }} | |
MATCH_PASSWORD: ${{ secrets.FASTLANE_MATCH_PASSWORD }} | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.FASTLANE_MATCH_GH_PAT }} | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Decrypt secrets | |
run: ./release/decrypt-secrets.sh | |
env: | |
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
- uses: actions/download-artifact@v3 | |
with: | |
name: android-build-outputs | |
path: android-app/app/build/outputs | |
- name: Publish QA to Google Play | |
run: bundle exec fastlane android publish_qa | |
- name: Publish prod to Google Play | |
run: bundle exec fastlane android publish_prod | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ios-qa-build-outputs | |
- name: Publish QA to TestFlight | |
run: bundle exec fastlane ios publish_qa | |
- name: Delete QA IPA | |
run: | | |
rm *.ipa | |
rm *.dSYM.zip | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ios-prod-build-outputs | |
- name: Publish prod to TestFlight | |
run: bundle exec fastlane ios publish_prod |