Skip to content

Commit 43ce790

Browse files
committed
Update maven-publish for releases without deploying to FTP
1 parent b1a3ad1 commit 43ce790

File tree

2 files changed

+100
-5
lines changed

2 files changed

+100
-5
lines changed

.github/workflows/maven-publish.yml

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@ name: Publish Desktop Forge
22

33
on:
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

617
jobs:
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 }}

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@
8080
<repository>
8181
<id>cardforge-repo</id>
8282
<name>Forge Releases</name>
83-
<url>ftp://ftp.cardforge.org/maven/releases/</url>
83+
<url>file:///${project.build.directory}/tmp</url>
8484
</repository>
8585
<snapshotRepository>
8686
<id>cardforge-snapshot-repo</id>
8787
<name>Forge Snapshots</name>
88-
<url>ftp://ftp.cardforge.org/maven/snapshots/</url>
88+
<url>file:///${project.build.directory}/tmp</url>
8989
</snapshotRepository>
9090
</distributionManagement>
9191

0 commit comments

Comments
 (0)