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@f0bb91606209742fe3ea40199be2f3ef195ecabf with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - 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@cba1833ddecbbee649950c284416981928631008 with: arguments: test --stacktrace - name: (Fail-only) upload test report if: failure() uses: actions/upload-artifact@27bce4eee761b5bc643f46a8dfb41b430c8d05f6 with: name: Test report path: app/build/reports stylecheck: runs-on: ubuntu-latest steps: - name: Setup Java 17 uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f 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@cba1833ddecbbee649950c284416981928631008 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@f0bb91606209742fe3ea40199be2f3ef195ecabf with: distribution: 'zulu' java-version: '17' - name: Checkout repository uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - 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@cba1833ddecbbee649950c284416981928631008 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 }}