name: Run tests and publish snapshot on: push: branches: [ trunk ] pull_request: jobs: checks: name: Run tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: lfs: true - uses: gradle/wrapper-validation-action@v1 - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 - uses: gradle/gradle-build-action@v3.0.0-beta.4 - uses: oNaiPs/secrets-to-env-action@v1 with: secrets: ${{ toJSON(secrets) }} - name: Run unit tests and friends run: ./gradlew check - name: Run paparazzi screenshot tests run: ./gradlew verifyPaparazziDebug - name: (Fail-only) Upload paparazzi test reports if: failure() uses: actions/upload-artifact@v3 with: name: test-failures path: | **/build/reports/tests/*/ **/out/failures/ paparazzi/paparazzi-gradle-plugin/src/test/projects/**/build/reports/paparazzi/images/ - name: Run instrumented screenshot tests env: # https://docs.emulator.wtf/github/tokenless EW_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: ./gradlew testDebugWithEmulatorWtf - name: (Fail-only) Bundle instrumented test reports if: failure() run: find . -type d '(' -name 'reports' -o -name 'test-results' ')' | zip -@ -r instrumentation-test-build-reports.zip - name: (Fail-only) Upload instrumented test reports if: failure() uses: actions/upload-artifact@v2 with: name: instrumentation-test-report path: instrumentation-test-build-reports.zip deploy-snapshot: name: Deploy snapshot runs-on: ubuntu-latest timeout-minutes: 10 if: github.repository == 'saket/telephoto' && github.ref == 'refs/heads/trunk' needs: [checks] steps: - uses: actions/checkout@v3 - uses: gradle/wrapper-validation-action@v1 - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 17 - uses: gradle/gradle-build-action@v2.4.2 - name: Ensure snapshot version run: ./gradlew throwIfVersionIsNotSnapshot - name: Publish snapshot run: ./gradlew clean publish --no-daemon --no-parallel --no-configuration-cache --stacktrace env: ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}