Skip to content
49 changes: 40 additions & 9 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
java-version: 21

- name: Build QA
id: build-qa
if: ${{ steps.check-secrets.outputs.ok == 'true' }}
env:
KS_PASS: ${{ secrets.KS_PASS }}
Expand All @@ -46,40 +47,70 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mkdir -p "$HOME/.gradle"
echo "org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" > "$HOME/.gradle/gradle.properties"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be multi-line to make it work.

echo "org.gradle.caching=true; org.gradle.parallel=true; org.gradle.configureondemand=true" >> "$HOME/.gradle/gradle.properties"
{
echo "org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g"
echo "org.gradle.caching=true"
echo "org.gradle.parallel=true"
echo "org.gradle.configureondemand=true"
} > "$HOME/.gradle/gradle.properties"
[ -e app/build.gradle ] && sed -i "/qa/,/\}/ s/versionCode .*/versionCode ${{github.event.number}} /" "app/build.gradle"
[ -e app/build.gradle ] && sed -i "/qa/,/\}/ s/versionName .*/versionName \"${{github.event.number}}\"/" "app/build.gradle"
[ -e app/build.gradle.kts ] && sed -i "/qa/,/\}/ s/versionCode .*/versionCode = ${{github.event.number}} /" "app/build.gradle.kts"
[ -e app/build.gradle.kts ] && sed -i "/qa/,/\}/ s/versionName .*/versionName = \"${{github.event.number}}\"/" "app/build.gradle.kts"
./gradlew assembleQaDebug
$(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 ".github/workflows/QA_keystore.jks" app/build/outputs/apk/qa/debug/*qa-debug*.apk
apk=$(find app/build/outputs/apk/qa/debug -name '*qa-debug*.apk' | head -n1)
echo "apk-path=$apk" >> "$GITHUB_OUTPUT"
echo "apk-name=$(basename "$apk")" >> "$GITHUB_OUTPUT"
echo "apk-size=$(du -h "$apk" | cut -f1)" >> "$GITHUB_OUTPUT"

- name: Upload APK
id: upload-apk
if: ${{ steps.check-secrets.outputs.ok == 'true' }}
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
path: app/build/outputs/apk/qa/debug/*qa-debug*.apk
path: ${{ steps.build-qa.outputs.apk-path }}
if-no-files-found: error
retention-days: 7
archive: false

- name: Create QR Code
- name: Create QR code
if: ${{ steps.check-secrets.outputs.ok == 'true' }}
env:
ARTIFACT_URL: ${{ steps.upload-apk.outputs.artifact-url }}
run: |
sudo apt-get -y install qrencode
qrencode -o qr.png "${{ steps.upload-apk.outputs.artifact-url }}"
qrencode -s 8 -o qr.png "$ARTIFACT_URL"

- name: Upload QR
- name: Upload QR code
id: upload-qr
if: ${{ steps.check-secrets.outputs.ok == 'true' }}
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
path: qr.png
if-no-files-found: error
retention-days: 7
archive: false

- name: Comment PR
if: ${{ steps.check-secrets.outputs.ok == 'true' }}
uses: thollander/actions-comment-pull-request@e4a76dd2b0a3c2027c3fd84147a67c22ee4c90fa
with:
comment-tag: qa-apk
mode: upsert

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of creating another comment, it edits/replaces that comment with the new message.

message: |
APK file: ${{ steps.upload-apk.outputs.artifact-url }}
To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.
![qrcode](${{ steps.upload-qr.outputs.artifact-url }}) (please click on link to get QR code displayed)
### :iphone: QA build
Comment thread
alperozturk96 marked this conversation as resolved.

| | |
|---|---|
| **Download** | [${{ steps.build-qa.outputs.apk-name }}](${{ steps.upload-apk.outputs.artifact-url }}) (${{ steps.build-qa.outputs.apk-size }}) |
| **QR code** | [Open the QR code for this download](${{ steps.upload-qr.outputs.artifact-url }}) |
| **Commit** | ${{ github.event.pull_request.head.sha }} |
| **Version** | `${{ github.event.number }}` |
| **Available until** | 7 days after this build |

The QA build installs alongside a released Nextcloud app, so you can keep
using your existing install while testing.

Downloading the file requires a GitHub account, so open this link on the
device you want to test on, or transfer the APK to it.
Loading