@@ -2,10 +2,21 @@ name: Publish Desktop Forge
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ debug_enabled :
7+ type : boolean
8+ description : ' Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
9+ required : false
10+ default : false
11+ release_android :
12+ type : boolean
13+ description : ' Also try to release android build'
14+ required : false
15+ default : false
516
617jobs :
718 build :
8-
19+ if : github.repository_owner == 'Card-Forge'
920 runs-on : ubuntu-latest
1021 permissions :
1122 contents : write
@@ -32,10 +43,94 @@ jobs:
3243 run : |
3344 git config user.email "actions@github.com"
3445 git config user.name "GitHub Actions"
35- - name : Build/Install/Publish to GitHub Packages Apache Maven
46+
47+ - name : Install old maven (3.8.1)
48+ run : |
49+ 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
50+ tar xf apache-maven-3.8.1-bin.tar.gz
51+ export PATH=$PWD/apache-maven-3.8.1/bin:$PATH
52+ export MAVEN_HOME=$PWD/apache-maven-3.8.1
53+ mvn --version
54+
55+ - name : Setup tmate session
56+ uses : mxschmitt/action-tmate@v3
57+ if : ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
58+
59+ - name : Setup android requirements
60+ if : ${{ github.event_name == 'workflow_dispatch' && inputs.release_android }}
61+ run : |
62+ 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"
63+ cd forge-gui-android
64+ echo "${{ secrets.FORGE_KEYSTORE }}" > forge.keystore.asc
65+ gpg -d --passphrase "${{ secrets.FORGE_KEYSTORE_PASSPHRASE }}" --batch forge.keystore.asc > forge.keystore
66+ cd -
67+ mkdir -p ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2
68+ cd ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2
69+ 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
70+ 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
71+ cd -
72+ mvn install -Dmaven.test.skip=true
73+ mvn dependency:tree
74+
75+
76+ - name : Build/Install/Publish Desktop to GitHub Packages Apache Maven
77+ if : ${{ github.event_name == 'workflow_dispatch' && !inputs.release_android }}
78+ run : |
79+ export DISPLAY=":1"
80+ Xvfb :1 -screen 0 800x600x8 &
81+ export _JAVA_OPTIONS="-Xmx2g"
82+ d=$(date +%m.%d)
83+ # build only desktop and only try to move desktop files
84+ mvn -U -B clean -P windows-linux install -e -T 1C release:clean release:prepare release:perform -DskipTests
85+ mkdir izpack
86+ # move bz2 and jar from work dir to izpack dir
87+ mv /home/runner/work/forge/forge/forge-installer/*/*.{bz2,jar} izpack/
88+ # move desktop build.txt and version.txt to izpack
89+ mv /home/runner/work/forge/forge/forge-gui-desktop/target/classes/*.txt izpack/
90+ cd izpack
91+ ls
92+ echo "GIT_TAG=`echo $(git describe --tags --abbrev=0)`" >> $GITHUB_ENV
93+ env :
94+ GITHUB_TOKEN : ${{ github.token }}
95+
96+ - name : Build/Install/Publish Desktop+Android to GitHub Packages Apache Maven
97+ if : ${{ github.event_name == 'workflow_dispatch' && inputs.release_android }}
3698 run : |
3799 export DISPLAY=":1"
38100 Xvfb :1 -screen 0 800x600x8 &
39- mvn -U -B clean -P windows-linux install release:clean release:prepare release:perform -T 1C -Dcardforge-repo.username=${{ secrets.FTP_USERNAME }} -Dcardforge-repo.password=${{ secrets.FTP_PASSWORD }}
101+ export _JAVA_OPTIONS="-Xmx2g"
102+ d=$(date +%m.%d)
103+ # build both desktop and android
104+ 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
105+ mkdir izpack
106+ # move bz2 and jar from work dir to izpack dir
107+ mv /home/runner/work/forge/forge/forge-installer/*/*.{bz2,jar} izpack/
108+ # move desktop build.txt and version.txt to izpack
109+ mv /home/runner/work/forge/forge/forge-gui-desktop/target/classes/*.txt izpack/
110+ # move android apk and assets.zip
111+ mv /home/runner/work/forge/forge/forge-gui-android/target/*-signed-aligned.apk izpack/
112+ mv /home/runner/work/forge/forge/forge-gui-android/target/assets.zip izpack/
113+ cd izpack
114+ ls
115+ echo "GIT_TAG=`echo $(git describe --tags --abbrev=0)`" >> $GITHUB_ENV
40116 env :
41117 GITHUB_TOKEN : ${{ github.token }}
118+
119+ - name : Upload snapshot to GitHub Prerelease
120+ uses : ncipollo/release-action@v1
121+ env :
122+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
123+ with :
124+ name : Release ${{ env.GIT_TAG }}
125+ tag : ${{ env.GIT_TAG }}
126+ artifacts : izpack/*
127+ allowUpdates : true
128+ removeArtifacts : true
129+ makeLatest : true
130+
131+ - name : Send failure notification to Discord
132+ if : failure() # This step runs only if the job fails
133+ run : |
134+ curl -X POST -H "Content-Type: application/json" \
135+ -d "{\"content\": \"🔴 Release Build Failed in branch: \`${{ github.ref_name }}\` by \`${{ github.actor }}\`.\nCheck logs: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}\"}" \
136+ ${{ secrets.DISCORD_AUTOMATION_WEBHOOK }}
0 commit comments