Update circuit to v0.25.0 #1077
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: | |
- modern | |
tags: | |
- v* | |
pull_request: | |
jobs: | |
danger-pr: | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name == 'pull_request' }} | |
name: "danger-pr" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Danger | |
uses: docker://ghcr.io/danger/danger-kotlin:1.2.0 | |
with: | |
args: --failOnErrors --no-publish-check | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v3 | |
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: fastlane ios lint | |
# working-directory: ios-app | |
android: | |
needs: [code-style] | |
runs-on: ubuntu-22.04 | |
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: | |
- name: Generate build number | |
shell: bash | |
run: echo "ORG_GRADLE_PROJECT_DECKBOX_VERSIONCODE=$(( $GITHUB_RUN_NUMBER + 10000 ))" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v3 | |
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 \ | |
:androidApp:bundle \ | |
:androidApp:build \ | |
lint \ | |
-x :androidApp:assemble \ | |
-x :androidApp:bundle | |
- name: Danger Lint | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: docker://ghcr.io/danger/danger-kotlin:1.2.0 | |
with: | |
args: --failOnErrors --no-publish-check | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - 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@v4 | |
with: | |
name: android-build-outputs | |
path: androidApp/build/outputs | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-test-results | |
path: | | |
**/build/test-results/* | |
desktop: | |
needs: [code-style] | |
runs-on: ubuntu-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@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v3 | |
with: | |
cache-disabled: true | |
- name: Build Desktop App | |
run: ./gradlew jvmTest :desktopApp:packageDistributionForCurrentOS | |
- name: Upload build outputs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-build-binaries | |
path: desktopApp/build/compose/binaries | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: desktop-test-results | |
path: | | |
**/build/test-results/* | |
# ios-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@v3 | |
# | |
# - 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: Decrypt secrets | |
## run: ./release/decrypt-secrets.sh | |
## env: | |
## ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} | |
# | |
## - name: Build iOS application | |
## run: fastlane ios build | |
## working-directory: ios-app/Tivi | |
## 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-build-outputs | |
# path: | | |
# ios-app/Tivi/*.ipa | |
# ios-app/Tivi/*.dSYM.zip | |
# | |
# - name: Upload build logs | |
# if: always() | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: ios-logs | |
# path: | | |
# **/fastlane-buildlog | |
ios-test: | |
needs: [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@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: gradle/gradle-build-action@v3 | |
with: | |
cache-disabled: true | |
- name: iosX64Test | |
run: ./gradlew iosX64Test | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-reports | |
path: | | |
**/build/reports/* | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios-test-results | |
path: | | |
**/build/test-results/* | |
# publish: | |
# if: github.ref == 'refs/heads/main' | |
# needs: [android, ios-app, ios-test, desktop] | |
# runs-on: macos-latest | |
# timeout-minutes: 20 | |
# | |
# steps: | |
# - uses: actions/checkout@v3 | |
# | |
# - 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: androidApp/app/build/outputs | |
# | |
# - name: Publish QA build to internal track | |
# uses: r0adkll/[email protected] | |
# with: | |
# serviceAccountJson: release/play-account.json | |
# packageName: app.tivi | |
# track: internal | |
# releaseFiles: androidApp/app/build/outputs/bundle/qaRelease/app-qa-release.aab | |
# mappingFile: androidApp/app/build/outputs/mapping/qaRelease/mapping.txt | |
# | |
# - name: Publish build to alpha track | |
# uses: r0adkll/[email protected] | |
# with: | |
# serviceAccountJson: release/play-account.json | |
# packageName: app.tivi | |
# track: alpha | |
# releaseFiles: androidApp/app/build/outputs/bundle/standardRelease/app-standard-release.aab | |
# mappingFile: androidApp/app/build/outputs/mapping/standardRelease/mapping.txt | |
# | |
# - uses: actions/download-artifact@v3 | |
# with: | |
# name: ios-build-outputs | |
# path: ios-app/Tivi | |
# | |
# - name: Publish to TestFlight | |
# run: fastlane ios uploadtestflight | |
# working-directory: ios-app/Tivi | |
# 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 }} |