@@ -36,10 +36,15 @@ jobs:
3636 run : |
3737 Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/${Env:ENEMIZER_VERSION}/win-x64.zip -OutFile enemizer.zip
3838 Expand-Archive -Path enemizer.zip -DestinationPath EnemizerCLI -Force
39+ choco install innosetup --version=6.2.2 --allow-downgrade
3940 - name : Build
4041 run : |
4142 python -m pip install --upgrade pip
4243 python setup.py build_exe --yes
44+ if ( $? -eq $false ) {
45+ Write-Error "setup.py failed!"
46+ exit 1
47+ }
4348 $NAME="$(ls build | Select-String -Pattern 'exe')".Split('.',2)[1]
4449 $ZIP_NAME="Archipelago_$NAME.7z"
4550 echo "$NAME -> $ZIP_NAME"
4954 Rename-Item "exe.$NAME" Archipelago
5055 7z a -mx=9 -mhe=on -ms "../dist/$ZIP_NAME" Archipelago
5156 Rename-Item Archipelago "exe.$NAME" # inno_setup.iss expects the original name
52- - name : Store 7z
53- uses : actions/upload-artifact@v4
54- with :
55- name : ${{ env.ZIP_NAME }}
56- path : dist/${{ env.ZIP_NAME }}
57- retention-days : 7 # keep for 7 days, should be enough
5857 - name : Build Setup
5958 run : |
6059 & "${env:ProgramFiles(x86)}\Inno Setup 6\iscc.exe" inno_setup.iss /DNO_SIGNTOOL
@@ -65,11 +64,38 @@ jobs:
6564 $contents = Get-ChildItem -Path setups/*.exe -Force -Recurse
6665 $SETUP_NAME=$contents[0].Name
6766 echo "SETUP_NAME=$SETUP_NAME" >> $Env:GITHUB_ENV
67+ - name : Check build loads expected worlds
68+ shell : bash
69+ run : |
70+ cd build/exe*
71+ mv Players/Templates/meta.yaml .
72+ ls -1 Players/Templates | sort > setup-player-templates.txt
73+ rm -R Players/Templates
74+ timeout 30 ./ArchipelagoLauncher "Generate Template Options" || true
75+ ls -1 Players/Templates | sort > generated-player-templates.txt
76+ cmp setup-player-templates.txt generated-player-templates.txt \
77+ || diff setup-player-templates.txt generated-player-templates.txt
78+ mv meta.yaml Players/Templates/
79+ - name : Test Generate
80+ shell : bash
81+ run : |
82+ cd build/exe*
83+ cp Players/Templates/Clique.yaml Players/
84+ timeout 30 ./ArchipelagoGenerate
85+ - name : Store 7z
86+ uses : actions/upload-artifact@v4
87+ with :
88+ name : ${{ env.ZIP_NAME }}
89+ path : dist/${{ env.ZIP_NAME }}
90+ compression-level : 0 # .7z is incompressible by zip
91+ if-no-files-found : error
92+ retention-days : 7 # keep for 7 days, should be enough
6893 - name : Store Setup
6994 uses : actions/upload-artifact@v4
7095 with :
7196 name : ${{ env.SETUP_NAME }}
7297 path : setups/${{ env.SETUP_NAME }}
98+ if-no-files-found : error
7399 retention-days : 7 # keep for 7 days, should be enough
74100
75101 build-ubuntu2004 :
@@ -110,23 +136,44 @@ jobs:
110136 echo -e "setup.py dist output:\n `ls dist`"
111137 cd dist && export APPIMAGE_NAME="`ls *.AppImage`" && cd ..
112138 export TAR_NAME="${APPIMAGE_NAME%.AppImage}.tar.gz"
113- (cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -czvf ../dist/$TAR_NAME Archipelago && mv Archipelago "$DIR_NAME")
139+ (cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -cv Archipelago | gzip -8 > ../dist/$TAR_NAME && mv Archipelago "$DIR_NAME")
114140 echo "APPIMAGE_NAME=$APPIMAGE_NAME" >> $GITHUB_ENV
115141 echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
116142 # - copy code above to release.yml -
117143 - name : Build Again
118144 run : |
119145 source venv/bin/activate
120146 python setup.py build_exe --yes
147+ - name : Check build loads expected worlds
148+ shell : bash
149+ run : |
150+ cd build/exe*
151+ mv Players/Templates/meta.yaml .
152+ ls -1 Players/Templates | sort > setup-player-templates.txt
153+ rm -R Players/Templates
154+ timeout 30 ./ArchipelagoLauncher "Generate Template Options" || true
155+ ls -1 Players/Templates | sort > generated-player-templates.txt
156+ cmp setup-player-templates.txt generated-player-templates.txt \
157+ || diff setup-player-templates.txt generated-player-templates.txt
158+ mv meta.yaml Players/Templates/
159+ - name : Test Generate
160+ shell : bash
161+ run : |
162+ cd build/exe*
163+ cp Players/Templates/Clique.yaml Players/
164+ timeout 30 ./ArchipelagoGenerate
121165 - name : Store AppImage
122166 uses : actions/upload-artifact@v4
123167 with :
124168 name : ${{ env.APPIMAGE_NAME }}
125169 path : dist/${{ env.APPIMAGE_NAME }}
170+ if-no-files-found : error
126171 retention-days : 7
127172 - name : Store .tar.gz
128173 uses : actions/upload-artifact@v4
129174 with :
130175 name : ${{ env.TAR_NAME }}
131176 path : dist/${{ env.TAR_NAME }}
177+ compression-level : 0 # .gz is incompressible by zip
178+ if-no-files-found : error
132179 retention-days : 7
0 commit comments