Create Snapshot Desktop and Android #14
This file contains 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
name: Create Snapshot Desktop and Android | |
on: | |
workflow_dispatch: | |
inputs: | |
debug_enabled: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' | |
required: false | |
default: false | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
- cron: '30 18 * * *' | |
jobs: | |
build: | |
if: github.repository_owner == 'Card-Forge' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
deployments: write | |
packages: write | |
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 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: Configure Git User | |
run: | | |
git config user.email "[email protected]" | |
git config user.name "GitHub Actions" | |
- 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 --install "build-tools;35.0.0" "platform-tools" "platforms;android-35" | |
- 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: Setup tmate session | |
uses: mxschmitt/action-tmate@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} | |
- 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: Build/Install/Publish to GitHub Packages Apache Maven | |
run: | | |
export DISPLAY=":1" | |
Xvfb :1 -screen 0 800x600x8 & | |
export _JAVA_OPTIONS="-Xmx2g" | |
d=$(date +%m.%d) | |
# build both desktop and android | |
mvn -U -B clean -P windows-linux,android-release-build install -e -Dcardforge-repo.username=${{ secrets.FTP_USERNAME }} -Dcardforge-repo.password=${{ secrets.FTP_PASSWORD }} -Dandroid.sdk.path=/usr/local/lib/android/sdk -Dandroid.buildToolsVersion=35.0.0 | |
mkdir izpack | |
# move bz2 and jar from work dir to izpack dir | |
mv /home/runner/work/forge/forge/forge-installer/*/*.{bz2,jar} izpack/ | |
# move desktop build.txt and version.txt to izpack | |
mv /home/runner/work/forge/forge/forge-gui-desktop/target/classes/*.txt izpack/ | |
# move android apk and assets.zip | |
mv /home/runner/work/forge/forge/forge-gui-android/target/*-signed-aligned.apk izpack/ | |
mv /home/runner/work/forge/forge/forge-gui-android/target/assets.zip izpack/ | |
cd izpack | |
# rename files and append date | |
for file in *.jar; do | |
bname="${file%.*}" | |
echo "file renamed to ${bname}-${d}.jar" | |
mv "${bname}.jar" "${bname}-${d}.jar" | |
done | |
for file in *.bz2; do | |
# remove .bz2 | |
fname="${file%.*}" | |
# remove .tar | |
bname="${fname%.*}" | |
echo "file renamed to ${bname}-${d}.tar.bz2" | |
mv "${fname}.bz2" "${bname}-${d}.tar.bz2" | |
done | |
ls | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: 📂 Sync files | |
uses: SamKirkland/[email protected] | |
with: | |
server: ftp.cardforge.org | |
username: ${{ secrets.FTP_USERNAME }} | |
password: ${{ secrets.FTP_PASSWORD }} | |
local-dir: izpack/ | |
server-dir: downloads/dailysnapshots/ | |
exclude: | | |
*.pom | |
*.repositories | |
*.xml |