qa.yml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
  2. # SPDX-FileCopyrightText: 2023 Andy Scherzinger <info@andy-scherzinger.de>
  3. # SPDX-License-Identifier: MIT
  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. run: |
  37. mkdir -p $HOME/.gradle
  38. echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > $HOME/.gradle/gradle.properties
  39. sed -i "/qa/,/\}/ s/versionCode .*/versionCode ${{github.event.number}} /" app/build.gradle
  40. sed -i "/qa/,/\}/ s/versionName .*/versionName \"${{github.event.number}}\"/" app/build.gradle
  41. ./gradlew assembleQaDebug
  42. $(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/app-qa-*.apk
  43. sudo scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD ${{github.event.number}} ${{github.event.number}} ${{ secrets.GITHUB_TOKEN }}