name: CI on: push: branches: - main pull_request: branches: - main jobs: run-unit-tests: runs-on: ubuntu-latest steps: - name: Setup Java 17 uses: actions/setup-java@a12e082d834968c1847f782019214fadd20719f6 with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@230611dbd0eb52da1e1f4f7bc8bb0c3a339fc8b7 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Run unit tests uses: gradle/gradle-build-action@c208b4c1f79551b44892d3d996365a136769c04b with: arguments: test --stacktrace - name: (Fail-only) upload test report if: failure() uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2 with: name: Test report path: app/build/reports stylecheck: runs-on: ubuntu-latest steps: - name: Setup Java 17 uses: actions/setup-java@a12e082d834968c1847f782019214fadd20719f6 with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@230611dbd0eb52da1e1f4f7bc8bb0c3a339fc8b7 with: fetch-depth: 0 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Check codestyle with Spotless uses: gradle/gradle-build-action@c208b4c1f79551b44892d3d996365a136769c04b with: arguments: spotlessCheck deploy-release-snapshot: runs-on: ubuntu-latest if: "github.event_name == 'push'" needs: [ "run-unit-tests", "stylecheck" ] steps: - name: Setup Java 17 uses: actions/setup-java@a12e082d834968c1847f782019214fadd20719f6 with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@230611dbd0eb52da1e1f4f7bc8bb0c3a339fc8b7 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Decrypt secrets run: scripts/signing-setup.sh "$ENCRYPT_KEY" env: ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} - name: Build release app uses: gradle/gradle-build-action@c208b4c1f79551b44892d3d996365a136769c04b with: arguments: :android:assembleRelease - name: Clean secrets run: scripts/signing-cleanup.sh - name: Deploy snapshot run: scripts/deploy-snapshot.sh env: ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }} SSH_USERNAME: ${{ secrets.SSH_USERNAME }} SERVER_ADDRESS: ${{ secrets.SERVER_ADDRESS }} SERVER_DESTINATION: ${{ secrets.SERVER_DESTINATION }} SSH_PORT: ${{ secrets.SSH_PORT }}