diff --git a/.github/workflows/test-android-build.yml b/.github/workflows/test-android-build.yml new file mode 100644 index 00000000000..e9aa10892b6 --- /dev/null +++ b/.github/workflows/test-android-build.yml @@ -0,0 +1,58 @@ +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: ${{ matrix.java }} + distribution: 'temurin' + cache: 'maven' + + - 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: 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 build in virtual framebuffer + run: | + export DISPLAY=":1" + Xvfb :1 -screen 0 800x600x8 & + mvn -U -B -P android-test-build verify -e -T 1C -Dandroid.sdk.path=/usr/local/lib/android/sdk -Dandroid.buildToolsVersion=35.0.0 -Dmaven.test.skip=true diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 9a750bdff09..c33c54aa40f 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -527,5 +527,116 @@ + + + android-test-build + + apk + + + + + exec-maven-plugin + 3.4.1 + org.codehaus.mojo + + + SignV2 + verify + + exec + + + + + ${pom.basedir} + java + + -jar + ${pom.basedir}/tools/uber-apk-signer.jar + -a + ${pom.basedir}/target/ + --debug + + + + + com.simpligility.maven.plugins + android-maven-plugin + + + javax.xml.bind + jaxb-api + 2.3.1 + + + com.sun.xml.bind + jaxb-impl + 2.3.4 + + + sun + misc + 1 + system + ${pom.basedir}/libs/sun-misc.jar + + + 4.6.2 + true + + + false + + + 35 + 35.0.0 + + + false + + true + ${project.basedir}/assets + ${project.basedir}/res + ${project.basedir}/libs + true + + false + ${project.basedir}/proguard.cfg + + ${pom.basedir}/tools/proguard.jar + true + d8 + + 26 + + ${build.min.memory} + ${build.max.memory} + + + + true + + ${build.min.memory} + ${build.max.memory} + + --min-sdk-version=26 + + + + + update-manifest + + manifest-merger + + + ${snapshot-version} + + + + + + + diff --git a/pom.xml b/pom.xml index e3e8c8e8b4c..7cabbdbe7c0 100644 --- a/pom.xml +++ b/pom.xml @@ -69,10 +69,10 @@ forge-gui-mobile forge-gui-mobile-dev forge-gui-desktop - forge-gui-android forge-gui-ios forge-adventure forge-lda + forge-gui-android