Implement Message487 notification and SMS forwarding client #1
Workflow file for this run
This file contains hidden or 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: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| android: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - uses: gradle/actions/setup-gradle@v4 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: "3.4.10" | |
| bundler-cache: true | |
| - name: Install Android SDK components | |
| run: sdkmanager "platforms;android-36" "build-tools;36.0.0" | |
| - run: bundle exec fastlane android checks | |
| - name: Publish test and lint reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: android-test-reports | |
| path: | | |
| app/build/reports/tests/ | |
| app/build/test-results/ | |
| app/build/reports/lint-results-* | |
| if-no-files-found: warn | |
| retention-days: 14 | |
| - uses: actions/upload-artifact@v7 | |
| id: apk | |
| with: | |
| name: message487-apks | |
| path: app/build/outputs/apk/**/*.apk | |
| if-no-files-found: error | |
| retention-days: 14 | |
| - name: Link APK artifacts | |
| env: | |
| ARTIFACT_URL: ${{ steps.apk.outputs.artifact-url }} | |
| run: echo "[Download debug and unsigned release APKs]($ARTIFACT_URL)" >> "$GITHUB_STEP_SUMMARY" | |
| python: | |
| name: Python tests and style | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: "3.4.10" | |
| bundler-cache: true | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| cache-dependency-path: requirements-dev.txt | |
| - run: python -m pip install -r requirements-dev.txt | |
| - run: bundle exec fastlane android python_checks | |
| dev-server: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - run: docker compose -f DevServer/compose.yaml up -d --wait --wait-timeout 300 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: "3.4.10" | |
| bundler-cache: true | |
| - run: bundle exec fastlane android server_tests | |
| - name: Server logs | |
| if: failure() | |
| run: docker compose -f DevServer/compose.yaml logs --tail 150 | |
| - name: Stop server | |
| if: always() | |
| run: docker compose -f DevServer/compose.yaml down |