From e1e69a48973a82f2758ecc7f2f7ffd17f3e2c6ec Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 17 Oct 2024 15:34:29 +0800 Subject: [PATCH] test android workflow --- .github/workflows/test-android-build.yml | 70 ++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/test-android-build.yml diff --git a/.github/workflows/test-android-build.yml b/.github/workflows/test-android-build.yml new file mode 100644 index 00000000000..fdae128ec3f --- /dev/null +++ b/.github/workflows/test-android-build.yml @@ -0,0 +1,70 @@ +name: Test Android build + +on: + push: + paths: [ 'forge-gui-android/**' ] + pull_request: + paths: [ 'forge-gui-android/**' ] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] + name: Test with Java ${{ matrix.Java }} + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + server-id: cardforge-repo + server-username: ${{ secrets.FTP_USERNAME }} + server-password: ${{ secrets.FTP_PASSWORD }} + settings-path: ${{ github.workspace }} # location for the settings.xml file + + - name: Install old maven (3.8.1) + run: | + curl -o apache-maven-3.8.1-bin.tar.gz https://archive.apache.org/dist/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz + tar xf apache-maven-3.8.1-bin.tar.gz + export PATH=$PWD/apache-maven-3.8.1/bin:$PATH + export MAVEN_HOME=$PWD/apache-maven-3.8.1 + mvn --version + + - name: Set Up Android tools + run: | + JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools" + JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-35" + JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "build-tools;35.0.0" + + - name: Extract Android keystore + run: | + ls + cd forge-gui-android + echo "${{ secrets.FORGE_KEYSTORE }}" > forge.keystore.asc + gpg -d --passphrase "${{ secrets.FORGE_KEYSTORE_PASSPHRASE }}" --batch forge.keystore.asc > forge.keystore + cd - + + - name: Install Android maven plugin + run: | + mkdir -p ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2 + cd ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2 + curl -L -o android-maven-plugin-4.6.2.jar https://github.com/Card-Forge/android-maven-plugin/releases/download/4.6.2/android-maven-plugin-4.6.2.jar + curl -L -o android-maven-plugin-4.6.2.pom https://github.com/Card-Forge/android-maven-plugin/releases/download/4.6.2/android-maven-plugin-4.6.2.pom + #mvn install:install-file -Dfile=android-maven-plugin-4.6.2.jar -DgroupId=com.simpligility.maven.plugins -DartifactId=android-maven-plugin -Dversion=4.6.2 -Dpackaging=jar + cd - + mvn install -Dmaven.test.skip=true + mvn dependency:tree + + - name: Install virtual framebuffer (if not available) to allow running GUI on a headless server + run: command -v Xvfb >/dev/null 2>&1 || { sudo apt update && sudo apt install -y xvfb; } + + - name: Run tests in virtual framebuffer + run: | + export DISPLAY=":1" + Xvfb :1 -screen 0 800x600x8 & + mvn -U -B -P android-release-build verify -e -Dandroid.sdk.path=/usr/local/lib/android/sdk -Dandroid.buildToolsVersion=35.0.0 -Dmaven.test.skip=true