name: CI on: push: branches: [main] pull_request: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: ci: runs-on: ubuntu-26.04 timeout-minutes: 90 permissions: contents: read env: GRADLE_OPTS: -Dorg.gradle.daemon=false steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: ./.github/actions/build with: gradle-args: ":app:ktlintCheck :app:lintDebug :app:testDebugUnitTest :app:assembleDebug :app:assembleNightly --no-configuration-cache --console=plain --no-daemon" - name: Collect nightly builds if: github.ref == 'refs/heads/main' run: | cp app/build/outputs/apk/debug/app-debug.apk subtracks-nightly-debug.apk cp app/build/outputs/apk/nightly/app-nightly.apk subtracks-nightly.apk - name: Checksums if: github.ref == 'refs/heads/main' run: sha256sum subtracks-nightly.apk subtracks-nightly-debug.apk | tee SHA256SUMS - uses: actions/upload-artifact@v7 if: github.ref == 'refs/heads/main' with: path: subtracks-nightly.apk archive: false - uses: actions/upload-artifact@v7 if: github.ref == 'refs/heads/main' with: path: subtracks-nightly-debug.apk archive: false - uses: actions/upload-artifact@v7 if: github.ref == 'refs/heads/main' with: path: SHA256SUMS archive: false - uses: actions/cache@v6 with: path: .integration/music key: integration-music-v2 - run: nix develop .#integration --command nu tools/integration-test.nu