qa.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
  2. # SPDX-FileCopyrightText: 2020 Tobias Kaminsky <tobias@kaminsky.me>
  3. # SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
  4. name: "QA"
  5. on:
  6. pull_request:
  7. branches: [ master, stable-* ]
  8. permissions:
  9. pull-requests: write
  10. contents: read
  11. concurrency:
  12. group: qa-build-${{ github.head_ref || github.run_id }}
  13. cancel-in-progress: true
  14. jobs:
  15. qa:
  16. runs-on: ubuntu-latest
  17. steps:
  18. - name: Check if secrets are available
  19. run: echo "ok=${{ secrets.KS_PASS != '' }}" >> "$GITHUB_OUTPUT"
  20. id: check-secrets
  21. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
  22. if: ${{ steps.check-secrets.outputs.ok == 'true' }}
  23. - name: set up JDK 17
  24. uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
  25. if: ${{ steps.check-secrets.outputs.ok == 'true' }}
  26. with:
  27. distribution: "temurin"
  28. java-version: 17
  29. - name: Build QA
  30. if: ${{ steps.check-secrets.outputs.ok == 'true' }}
  31. env:
  32. KS_PASS: ${{ secrets.KS_PASS }}
  33. KEY_PASS: ${{ secrets.KEY_PASS }}
  34. LOG_USERNAME: ${{ secrets.LOG_USERNAME }}
  35. LOG_PASSWORD: ${{ secrets.LOG_PASSWORD }}
  36. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  37. run: |
  38. mkdir -p $HOME/.gradle
  39. echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > $HOME/.gradle/gradle.properties
  40. sed -i "/qa/,/\}/ s/versionCode .*/versionCode ${{github.event.number}} /" app/build.gradle
  41. sed -i "/qa/,/\}/ s/versionName .*/versionName \"${{github.event.number}}\"/" app/build.gradle
  42. ./gradlew assembleQaDebug
  43. $(find /usr/local/lib/android/sdk/build-tools/*/apksigner | sort | tail -n1) sign --ks-pass pass:$KS_PASS --key-pass pass:$KEY_PASS --ks-key-alias key0 --ks scripts/QA_keystore.jks app/build/outputs/apk/qa/debug/qa-debug-*.apk
  44. scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD ${{github.event.number}} ${{github.event.number}}