Skip to content

Update kotlin monorepo to v1.9.25 #993

Update kotlin monorepo to v1.9.25

Update kotlin monorepo to v1.9.25 #993

Workflow file for this run

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 }}