Skip to content

Commit 1543f36

Browse files
committed
Fix CICD
1 parent 1361a85 commit 1543f36

File tree

3 files changed

+299
-214
lines changed

3 files changed

+299
-214
lines changed

.github/workflows/preview.yml

Lines changed: 149 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
name: Deploy preview modpack
1+
name: Deploy Preview Modpack
22

33
permissions:
4-
contents: write
4+
contents: read
55
deployments: write
66

77
on:
88
workflow_dispatch:
99
inputs:
10+
target_branch:
11+
description: 'Target branch for the preview'
12+
type: string
13+
required: true
1014
version:
1115
description: 'Modpack version'
1216
required: true
@@ -15,23 +19,31 @@ on:
1519
required: true
1620

1721
env:
22+
NAME: "GTExpert2"
1823
VERSION_NORMAL: "v${{ github.event.inputs.version }}-pr-${{ github.event.inputs.preview_version }}"
1924
VERSION_LWJGL3: "v${{ github.event.inputs.version }}-lwjgl3-${{ github.event.inputs.preview_version }}"
20-
NAME: "GTExpert2"
2125

2226
jobs:
23-
deploy:
27+
build:
2428
runs-on: ubuntu-latest
2529
strategy:
2630
matrix:
27-
version: [ "NORMAL", "LWJGL3" ]
31+
buildType: [standard, lwjgl3]
2832

2933
steps:
30-
- name: Checkout
34+
- name: Checkout repository
3135
uses: actions/checkout@v4
36+
with:
37+
ref: ${{ github.event.inputs.target_branch || github.ref }}
38+
fetch-depth: 0
3239

33-
- name: Setup Build
34-
uses: ./.github/actions/build_setup
40+
- name: Cache dependencies
41+
uses: actions/cache@v4
42+
with:
43+
path: |
44+
~/.m2/repository
45+
~/.cache/pip
46+
key: ${{ runner.os }}-deps-${{ matrix.buildType }}-${{ hashFiles('**/pom.xml') }}
3547

3648
- name: Download Resource Packs zip
3749
run: |
@@ -40,112 +52,154 @@ jobs:
4052
ASSET_NAME=$(echo $ASSET_URL | awk -F'/' '{print $NF}')
4153
wget -O ./overrides/resourcepacks/$ASSET_NAME $ASSET_URL
4254
43-
- if: matrix.version == 'LWJGL3'
44-
name: Set the version (LWJGL3)
45-
run: |
46-
echo "[CleanroomMMC] GregTech Expert 2 ${{ env.VERSION_LWJGL3 }}" > ./overrides/config/txloader/load/custommainmenu/version.txt
47-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_LWJGL3 }}/g" ./manifest.json
48-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_LWJGL3 }}/g" ./instance.cfg
49-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_LWJGL3 }}/g" ./overrides/config/craftpresence.json
55+
- name: Setup Build Environment
56+
uses: ./.github/actions/build_setup
5057

51-
- if: matrix.version == 'NORMAL'
52-
name: Set the version (NORMAL)
53-
run: |
54-
echo "GregTech Expert 2 ${{ env.VERSION_NORMAL }}" > ./overrides/config/txloader/load/custommainmenu/version.txt
55-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_NORMAL }}/g" ./manifest.json
56-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_NORMAL }}/g" ./instance.cfg
57-
sed -i -e "s/MODPACKVERSION/${{ env.VERSION_NORMAL }}/g" ./overrides/config/craftpresence.json
58+
- name: Create artifacts directory
59+
run: mkdir -p artifacts
5860

59-
- if: matrix.version == 'LWJGL3'
60-
name: Remove lwjgl3 not supported mods
61+
- name: Set Modpack Version
62+
run: |
63+
if [[ "${{ matrix.buildType }}" == "lwjgl3" ]]; then
64+
VER="${{ env.VERSION_LWJGL3 }}"
65+
echo "[CleanroomMMC] GregTech Expert 2 $VER" > overrides/config/txloader/load/custommainmenu/version.txt
66+
else
67+
VER="${{ env.VERSION_NORMAL }}"
68+
echo "GregTech Expert 2 $VER" > ./overrides/config/txloader/load/custommainmenu/version.txt
69+
fi
70+
sed -i "s/MODPACKVERSION/$VER/g" manifest.json instance.cfg overrides/config/craftpresence.json
71+
72+
- name: Adjust for LWJGL3
73+
if: matrix.buildType == 'lwjgl3'
6174
run: |
6275
python buildtools/gen-lwjgl3-manifest.py
63-
cp -vf ./cmmc/manifest.json ./manifest.json
76+
cp -vf cmmc/manifest.json manifest.json
6477
65-
- name: Run Python
78+
- name: Install Mods
6679
env:
6780
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
6881
run: python buildtools/mod-install.py
6982

70-
- name: Remaove .gitkeep files
71-
run: find . -name ".gitkeep" -type f -delete
83+
- name: Clean up placeholder files
84+
run: find . -name ".gitkeep" -delete
7285

73-
- if: matrix.version == 'NORMAL'
74-
name: Archive Release CF (NORMAL)
75-
run: zip -r ./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-cf.zip ./manifest.json ./modlist.html ./overrides/bansoukou/ ./overrides/config/ ./overrides/local/ ./overrides/resourcepacks/ ./overrides/scripts/
76-
77-
- if: matrix.version == 'LWJGL3'
78-
name: Archive Release MMC (LWJGL3)
79-
run: |
80-
sed -i -e "s/B:EnableCustomGameTitle=false/B:EnableCustomGameTitle=true/g" ./overrides/config/stellar_core.cfg
81-
cp -rvf ./cmmc/bansoukou/ ./overrides/
82-
rm -Rf ./cmmc/bansoukou/
83-
mv -vf ./overrides/ .minecraft/
84-
cp -vf ./icon.png .minecraft/
85-
cp -rvf ./cmmc/* ./
86-
zip -r ./${{ env.NAME }}-${{ env.VERSION_LWJGL3 }}-cmmc.zip ./libraries/ ./patches/ ./mmc-pack.json ./instance.cfg .minecraft/
87-
88-
- if: matrix.version == 'NORMAL'
89-
name: Archive Release MMC (NORMAL)
86+
- name: Package Artifacts
9087
run: |
91-
mv -vf ./overrides/ .minecraft/
92-
cp -vf ./icon.png .minecraft/
93-
zip -r ./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-mmc.zip ./mmc-pack.json ./instance.cfg .minecraft/
88+
if [[ "${{ matrix.buildType }}" == "lwjgl3" ]]; then
89+
sed -i "s/B:EnableCustomGameTitle=false/B:EnableCustomGameTitle=true/" overrides/config/stellar_core.cfg
90+
cp -rvf cmmc/bansoukou/ overrides/
91+
mv overrides .minecraft
92+
cp icon.png .minecraft/
93+
zip -r artifacts/${{ env.NAME }}-${{ env.VERSION_LWJGL3 }}-mmc.zip libraries/ patches/ mmc-pack.json instance.cfg .minecraft/
94+
mv serverfiles/* ./
95+
rm -vf .minecraft/mods/!Red-Core-*
96+
rm -vf .minecraft/mods/Alfheim-*
97+
rm -vf .minecraft/mods/Valkyrie-*
98+
rm -vf .minecraft/mods/CraftPresence-*
99+
rm -vf .minecraft/mods/Controlling-*
100+
rm -vf .minecraft/mods/UniLib-*
101+
rm -vf .minecraft/mods/CustomMainMenu-*
102+
rm -vf .minecraft/mods/Fixeroo-*
103+
rm -vf .minecraft/mods/FpsReducer-*
104+
rm -vf .minecraft/mods/modernsplash-*
105+
rm -vf .minecraft/mods/RenderLib-*
106+
rm -vf .minecraft/mods/particleculling-*
107+
rm -vf .minecraft/mods/EntityCulling-*
108+
rm -vf .minecraft/mods/SmoothFont-*
109+
rm -vf .minecraft/mods/InGameInfoXML-*
110+
rm -vf .minecraft/mods/oauth-*
111+
rm -vf .minecraft/mods/UntranslatedItems-*
112+
rm -vf .minecraft/mods/vintagefix-*
113+
mv -vf .minecraft/* ./
114+
zip -r artifacts/${{ env.NAME }}-${{ env.VERSION_LWJGL3 }}-server.zip docker-compose.yml PleaseRead.txt log4j2_112-116.xml Install.* ServerStart.* settings.* TmuxServer.sh bansoukou/ config/ local/ mods/ resources/ scripts/
115+
else
116+
zip -r artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-cf.zip ./manifest.json ./modlist.html ./overrides/bansoukou/ ./overrides/config/ ./overrides/local/ ./overrides/resourcepacks/ ./overrides/scripts/
117+
mv overrides .minecraft
118+
cp icon.png .minecraft/
119+
zip -r artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-mmc.zip mmc-pack.json instance.cfg .minecraft/
120+
mv serverfiles/* ./
121+
rm -vf .minecraft/mods/!Red-Core-*
122+
rm -vf .minecraft/mods/Alfheim-*
123+
rm -vf .minecraft/mods/Valkyrie-*
124+
rm -vf .minecraft/mods/CraftPresence-*
125+
rm -vf .minecraft/mods/Controlling-*
126+
rm -vf .minecraft/mods/UniLib-*
127+
rm -vf .minecraft/mods/CustomMainMenu-*
128+
rm -vf .minecraft/mods/Fixeroo-*
129+
rm -vf .minecraft/mods/FpsReducer-*
130+
rm -vf .minecraft/mods/modernsplash-*
131+
rm -vf .minecraft/mods/RenderLib-*
132+
rm -vf .minecraft/mods/particleculling-*
133+
rm -vf .minecraft/mods/EntityCulling-*
134+
rm -vf .minecraft/mods/SmoothFont-*
135+
rm -vf .minecraft/mods/InGameInfoXML-*
136+
rm -vf .minecraft/mods/oauth-*
137+
rm -vf .minecraft/mods/UntranslatedItems-*
138+
rm -vf .minecraft/mods/vintagefix-*
139+
mv -vf .minecraft/* ./
140+
zip -r artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-server.zip docker-compose.yml PleaseRead.txt log4j2_112-116.xml Install.* ServerStart.* settings.* TmuxServer.sh bansoukou/ config/ local/ mods/ resources/ scripts/
141+
fi
142+
143+
- name: Upload Artifacts
144+
uses: actions/upload-artifact@v4
145+
with:
146+
name: ${{ matrix.buildType }}-artifacts
147+
path: artifacts/
148+
retention-days: 1
94149

95-
- if: matrix.version == 'NORMAL'
96-
name: Move Server Files (NORMAL)
97-
run: |
98-
mv -vf ./serverfiles/* ./
150+
release:
151+
needs: build
152+
runs-on: ubuntu-latest
153+
permissions:
154+
contents: write
99155

100-
- name: Remove Client Only Mods
156+
steps:
157+
- name: Checkout repository
158+
uses: actions/checkout@v4
159+
with:
160+
ref: ${{ github.event.inputs.target_branch || github.ref }}
161+
fetch-depth: 0
162+
163+
- name: Download All Artifacts
164+
uses: actions/download-artifact@v4
165+
with:
166+
path: downloads
167+
168+
- name: Aggregate Artifacts
101169
run: |
102-
rm -vf .minecraft/mods/!Red-Core-*
103-
rm -vf .minecraft/mods/Alfheim-*
104-
rm -vf .minecraft/mods/Valkyrie-*
105-
rm -vf .minecraft/mods/CraftPresence-*
106-
rm -vf .minecraft/mods/Controlling-*
107-
rm -vf .minecraft/mods/UniLib-*
108-
rm -vf .minecraft/mods/CustomMainMenu-*
109-
rm -vf .minecraft/mods/Fixeroo-*
110-
rm -vf .minecraft/mods/FpsReducer-*
111-
rm -vf .minecraft/mods/modernsplash-*
112-
rm -vf .minecraft/mods/RenderLib-*
113-
rm -vf .minecraft/mods/particleculling-*
114-
rm -vf .minecraft/mods/EntityCulling-*
115-
rm -vf .minecraft/mods/SmoothFont-*
116-
rm -vf .minecraft/mods/InGameInfoXML-*
117-
rm -vf .minecraft/mods/oauth-*
118-
rm -vf .minecraft/mods/UntranslatedItems-*
119-
rm -vf .minecraft/mods/vintagefix-*
120-
121-
- if: matrix.version == 'NORMAL'
122-
name: Archive Release Server (NORMAL)
170+
mkdir -p artifacts
171+
for d in downloads/*; do
172+
if [ -d "$d" ]; then
173+
cp -r "$d"/* artifacts/ || true
174+
fi
175+
done
176+
177+
- name: Ensure Tag Exists
178+
if: "!startsWith(github.ref, 'refs/tags/')"
123179
run: |
124-
mv -vf .minecraft/* ./
125-
zip -r ./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-server.zip ./docker-compose.yml ./PleaseRead.txt ./log4j2_112-116.xml ./Install.bat ./Install.sh ./ServerStart.bat ./ServerStart.sh ./settings.bat ./settings.sh ./TmuxServer.sh ./bansoukou/ ./config/ ./local/ ./mods/ ./resources/ ./scripts/
180+
git config --global user.name "github-actions"
181+
git config --global user.email "actions@github.com"
182+
git tag ${{ env.VERSION_NORMAL }}
183+
git push origin ${{ env.VERSION_NORMAL }}
126184
127-
- if: matrix.version == 'NORMAL'
128-
name: Create GitHub Release (NORMAL)
185+
- name: Create or Update GitHub Release
129186
uses: softprops/action-gh-release@v2
130187
with:
131188
tag_name: ${{ env.VERSION_NORMAL }}
132-
prerelease: true
133-
generate_release_notes: true
134-
files: |
135-
./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-cf.zip
136-
./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-mmc.zip
137-
./${{ env.NAME }}-${{ env.VERSION_NORMAL }}-server.zip
189+
name: "Preview ${{ env.VERSION_NORMAL }}"
190+
body: |
191+
## GregTech Expert 2 - Preview Release
138192
139-
- if: matrix.version == 'LWJGL3'
140-
name: Create GitHub Release (LWJGL3)
141-
uses: softprops/action-gh-release@v2
142-
with:
143-
tag_name: ${{ env.VERSION_LWJGL3 }}
193+
This preview includes:
194+
- **Standard** (CurseForge / MultiMC / PrismLauncher / Server)
195+
- **LWJGL3** (MultiMC / PrismLauncher only)
196+
197+
See installation guide for LWJGL3 [here](https://github.com/GTModpackTeam/GregTech-Expert-2/blob/main/cmmc/README.md).
144198
prerelease: true
145-
body: |
146-
Note - This is LWJGL3 build and only available for MMC / PrismLauncher.
147-
FOLLOW THE INSTALLATION GUIDE [HERE](https://github.com/GTModpackTeam/GregTech-Expert-2/blob/main/cmmc/README.md).
148-
---
149-
generate_release_notes: true
150199
files: |
151-
./${{ env.NAME }}-${{ env.VERSION_LWJGL3 }}-cmmc.zip
200+
artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-cf.zip
201+
artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-mmc.zip
202+
artifacts/${{ env.NAME }}-${{ env.VERSION_NORMAL }}-server.zip
203+
artifacts/${{ env.NAME }}-${{ env.VERSION_LWJGL3 }}-mmc.zip
204+
env:
205+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)