📣 Adding Announcements and Channels #390
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors | |
| # SPDX-License-Identifier: MIT | |
| name: "Garm" | |
| on: | |
| pull_request: | |
| branches: [ master, stable-* ] | |
| push: | |
| branches: [ master, stable-* ] | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| runs-on: ubuntu-24.04 | |
| services: | |
| server: | |
| image: ${{ matrix.server == 'stable22' && 'ghcr.io/nextcloud/continuous-integration-shallow-server-php8.0:1' || 'ghcr.io/nextcloud/continuous-integration-shallow-server-php8.2:1' }} | |
| options: --name server | |
| ports: | |
| - 80:80 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| server: [ master ] # [ stable22, stable33, master ] | |
| api-level: [ 29 ] # [ 21, 36 ] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: configure server | |
| run: | | |
| sudo apt-get update && sudo apt-get install unzip cpu-checker qemu-kvm --yes | |
| sudo chmod 666 /dev/kvm | |
| docker cp .github/workflows/configServer.sh server:/tmp/ | |
| docker exec server chmod +x /tmp/configServer.sh | |
| docker exec server /tmp/configServer.sh ${{ matrix.server }} | |
| docker cp .github/workflows/configNC.sh server:/tmp/ | |
| docker exec server chmod +x /tmp/configNC.sh | |
| docker exec --user www-data server /tmp/configNC.sh ${{ matrix.server }} | |
| docker exec server /usr/local/bin/run.sh | |
| - name: set up JDK 21 | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 | |
| with: | |
| distribution: "temurin" | |
| java-version: 21 | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: create AVD and generate snapshot for caching | |
| uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 | |
| with: | |
| api-level: ${{ matrix.api-level }} | |
| force-avd-creation: false | |
| arch: x86_64 | |
| sdcard-path-or-size: 100M | |
| target: google_apis | |
| emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -skin 500x833 | |
| script: echo "Generated AVD snapshot for caching." | |
| - name: Configure gradle daemon | |
| run: | | |
| mkdir -p $HOME/.gradle | |
| echo "org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" >> $HOME/.gradle/gradle.properties | |
| echo "org.gradle.caching=true" >> $HOME/.gradle/gradle.properties | |
| echo "org.gradle.parallel=true" >> $HOME/.gradle/gradle.properties | |
| echo "org.gradle.configureondemand=true" >> $HOME/.gradle/gradle.properties | |
| - name: Build gplay | |
| run: | | |
| sdkmanager "cmake;4.1.2" | |
| sed -i s#http://server#http://10.0.2.2# gradle.properties | |
| sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml | |
| ./gradlew assembleGplayDebug | |
| - name: wait and ping server | |
| run: | | |
| while ! curl http://localhost/status.php 2>&1 | grep installed; do | |
| echo "wait…" | |
| sleep 5 | |
| done | |
| - name: gplay | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} | |
| uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 | |
| with: | |
| api-level: ${{ matrix.api-level }} | |
| force-avd-creation: false | |
| arch: x86_64 | |
| sdcard-path-or-size: 100M | |
| target: google_apis | |
| emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -skin 500x833 | |
| script: ./gradlew --no-daemon --stacktrace connectedGplayDebugAndroidTest | |
| - name: Archive Espresso results | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| if: ${{ always() }} | |
| with: | |
| name: Report-${{ matrix.server }}-${{ matrix.api-level }} | |
| path: app/build/reports | |
| retention-days: 4 |