Release v1.0.1 #24
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: Stable release builds | |
on: | |
push: | |
branches: [ release ] | |
env: | |
GODOT_VERSION: 4.2.2 | |
EXPORT_NAME: Pixelorama | |
TAG: v1.0.1 | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
jobs: | |
export-windows: | |
name: Windows Export 🗔 | |
runs-on: ubuntu-latest | |
container: | |
image: docker://barichello/godot-ci:4.2.2 | |
steps: | |
- name: Setup WINE, rcedit and NSIS 🍷 | |
run: | | |
dpkg --add-architecture i386 && apt-get update && apt-get install -y wine-stable && apt-get install -y wine32 && apt-get install -y nsis | |
chown root:root -R ~ | |
wget https://github.com/electron/rcedit/releases/download/v1.1.1/rcedit-x64.exe | |
mkdir -v -p ~/.local/share/rcedit | |
mv rcedit-x64.exe ~/.local/share/rcedit | |
godot --headless --quit | |
echo 'export/windows/wine = "/usr/bin/wine"' >> ~/.config/godot/editor_settings-4.tres | |
echo 'export/windows/rcedit = "/github/home/.local/share/rcedit/rcedit-x64.exe"' >> ~/.config/godot/editor_settings-4.tres | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup 💻 | |
run: | | |
mkdir -v -p build/${EXPORT_NAME}-Windows-64bit build/${EXPORT_NAME}-Windows-32bit ~/.local/share/godot/export_templates | |
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable | |
- name: Import resources once 📦 | |
continue-on-error: true | |
run: godot --headless -v --import | |
- name: Windows Build 🔧 | |
run: | | |
godot --headless -v --export-release "Windows Desktop 64-bit" ./build/${EXPORT_NAME}-Windows-64bit/${EXPORT_NAME}.exe | |
godot --headless -v --export-release "Windows Desktop 32-bit" ./build/${EXPORT_NAME}-Windows-32bit/${EXPORT_NAME}.exe | |
- name: Copy pixelorama_data folder 📁 | |
run: | | |
rm ./pixelorama_data/.gdignore | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-64bit | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-32bit | |
cp -R ./pixelorama_data ./build | |
- name: Zip 🗜️ | |
working-directory: ./build | |
run: | | |
zip -r ${EXPORT_NAME}-Windows-64bit.zip ${EXPORT_NAME}-Windows-64bit | |
zip -r ${EXPORT_NAME}-Windows-32bit.zip ${EXPORT_NAME}-Windows-32bit | |
- name: Build installer 🔧 | |
run: | | |
python3 ./installer/utils/po2nsi.py -i ./installer/pixelorama.nsi -o ./installer/pixelorama_loc.nsi -p ./installer/po -l "English" -v | |
makensis ./installer/pixelorama_loc.nsi | |
mkdir ./build/installer | |
mv ./installer/${EXPORT_NAME}_${TAG}_setup.exe ./build | |
- name: Upload Release Assets to itch.io 🎮 | |
run: | | |
butler push ./build/${EXPORT_NAME}-Windows-64bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-64 --userversion ${TAG} | |
butler push ./build/${EXPORT_NAME}-Windows-32bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-32 --userversion ${TAG} | |
butler push ./build/${EXPORT_NAME}_${TAG}_setup.exe ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-installer --userversion ${TAG} | |
- name: Upload Release Asset 🚀 | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./build/* | |
tag: ${{env.TAG}} | |
overwrite: true | |
file_glob: true | |
export-linux: | |
name: Linux Export 🐧 | |
runs-on: ubuntu-latest | |
container: | |
image: docker://barichello/godot-ci:4.2.2 | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup 💻 | |
run: | | |
mkdir -v -p build/${EXPORT_NAME}-Linux-64bit build/${EXPORT_NAME}-Linux-32bit build/${EXPORT_NAME}-Linux-ARM64 build/${EXPORT_NAME}-Linux-ARM32 ~/.local/share/godot/export_templates | |
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable | |
- name: Import resources once 📦 | |
continue-on-error: true | |
run: godot --headless -v --import | |
- name: Linux Build 🔧 | |
run: | | |
godot --headless -v --export-release "Linux/X11 64-bit" ./build/${EXPORT_NAME}-Linux-64bit/${EXPORT_NAME}.x86_64 | |
godot --headless -v --export-release "Linux/X11 32-bit" ./build/${EXPORT_NAME}-Linux-32bit/${EXPORT_NAME}.x86 | |
godot --headless -v --export-release "Linux/X11 ARM64" ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64 | |
godot --headless -v --export-release "Linux/X11 ARM32" ./build/${EXPORT_NAME}-Linux-ARM32/${EXPORT_NAME}.arm32 | |
- name: Give execute permission ☑️ | |
run: | | |
chmod +x ./build/${EXPORT_NAME}-Linux-64bit/${EXPORT_NAME}.x86_64 | |
chmod +x ./build/${EXPORT_NAME}-Linux-32bit/${EXPORT_NAME}.x86 | |
chmod +x ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64 | |
chmod +x ./build/${EXPORT_NAME}-Linux-ARM32/${EXPORT_NAME}.arm32 | |
- name: Copy pixelorama_data folder 📁 | |
run: | | |
rm ./pixelorama_data/.gdignore | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-64bit | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-32bit | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM64 | |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM32 | |
- name: Create tar.gz archive 🗜️ | |
run: | | |
cd build | |
tar zcvf ${EXPORT_NAME}-Linux-64bit.tar.gz ${EXPORT_NAME}-Linux-64bit | |
tar zcvf ${EXPORT_NAME}-Linux-32bit.tar.gz ${EXPORT_NAME}-Linux-32bit | |
tar zcvf ${EXPORT_NAME}-Linux-ARM64.tar.gz ${EXPORT_NAME}-Linux-ARM64 | |
tar zcvf ${EXPORT_NAME}-Linux-ARM32.tar.gz ${EXPORT_NAME}-Linux-ARM32 | |
- name: Upload Release Assets to itch.io 🎮 | |
run: | | |
butler push ./build/${{env.EXPORT_NAME}}-Linux-64bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-x86_64 --userversion ${{env.TAG}} | |
butler push ./build/${{env.EXPORT_NAME}}-Linux-32bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-x86 --userversion ${{env.TAG}} | |
butler push ./build/${{env.EXPORT_NAME}}-Linux-ARM64.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-arm64 --userversion ${{env.TAG}} | |
butler push ./build/${{env.EXPORT_NAME}}-Linux-ARM32.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-arm32 --userversion ${{env.TAG}} | |
- name: Upload Release Asset 🚀 | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./build/${{env.EXPORT_NAME}}-Linux-*.tar.gz | |
tag: ${{env.TAG}} | |
overwrite: true | |
file_glob: true | |
export-mac: | |
name: Mac Export 🍎 | |
runs-on: macos-latest | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup environment 🔧 | |
run: | | |
export GODOT_VERSION=${GODOT_VERSION} | |
export EXPORT_NAME=Pixelorama | |
- name: Download and extract export templates 💾 | |
run: | | |
mkdir -v -p "/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable" | |
wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz | |
unzip -a Godot_v${GODOT_VERSION}-stable_export_templates.tpz | |
mv ./templates/* "/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable" | |
- name: Download Godot headless binary 🤖 | |
run: | | |
wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_macos.universal.zip | |
unzip -a Godot_v${GODOT_VERSION}-stable_macos.universal.zip | |
- name: Setup 💻 | |
run: mkdir -v -p ./build/mac | |
- name: Import resources once 📦 | |
continue-on-error: true | |
run: ./Godot.app/Contents/MacOS/Godot --headless -v --import | |
- name: Mac Build 🔧 | |
run: | | |
chown runner ./Godot.app/Contents/MacOS/Godot | |
chmod +x ./Godot.app/Contents/MacOS/Godot | |
./Godot.app/Contents/MacOS/Godot --headless -v --export-release "macOS" ./build/mac/${EXPORT_NAME}.zip | |
- name: Make application executable 🔧 | |
run: | | |
unzip -a ./build/mac/${EXPORT_NAME}.zip -d ./build/mac | |
chmod +x ./build/mac/${EXPORT_NAME}.app/Contents/MacOS/${EXPORT_NAME} | |
rm ./build/mac/${EXPORT_NAME}.zip | |
- name: Fix application icon 🖼 | |
run: sips -s format icns ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns --out ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns | |
- name: Copy pixelorama_data folder 📁 | |
run: | | |
cp -R ./pixelorama_data ./build/mac/${EXPORT_NAME}.app/Contents/Resources | |
rm ./build/mac/${EXPORT_NAME}.app/Contents/Resources/pixelorama_data/.gdignore | |
- name: Ad-hoc signing ✍️ | |
run: codesign -s - --force --deep ./build/mac/${EXPORT_NAME}.app | |
- name: Create DMG archive 🔧 | |
run: hdiutil create -srcfolder ./build/mac -fs HFS+ -volname ${EXPORT_NAME} ./build/mac/${EXPORT_NAME}-Mac.dmg | |
- name: Upload Release Assets to itch.io 🎮 | |
run: | | |
curl -L -o butler.zip https://broth.itch.ovh/butler/darwin-amd64/LATEST/archive/default | |
unzip butler.zip | |
chmod +x butler | |
./butler push ./build/mac/${{env.EXPORT_NAME}}-Mac.dmg ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:mac --userversion ${{env.TAG}} | |
- name: Upload Release Asset 🚀 | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./build/mac/${{env.EXPORT_NAME}}-Mac.dmg | |
tag: ${{env.TAG}} | |
overwrite: true | |
export-web: | |
name: Web Export 🌐 | |
runs-on: ubuntu-latest | |
container: | |
image: docker://barichello/godot-ci:4.2.2 | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup 💻 | |
run: | | |
mkdir -v -p build/web ~/.local/share/godot/export_templates | |
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable | |
- name: Import resources once 📦 | |
continue-on-error: true | |
run: godot --headless -v --import | |
- name: Web Build 🔧 | |
run: godot --headless -v --export-release "Web" ./build/web/index.html | |
- name: Install rsync 📚 | |
run: | | |
apt-get update && apt-get install -y rsync | |
- name: Upload Release Assets to itch.io 🎮 | |
run: | | |
butler push ./build/web ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:web --userversion ${{env.TAG}} | |
# Workaround for SharedArrayBuffer support on GitHub Pages | |
# See: https://github.com/godotengine/godot-docs/issues/7084 | |
- name: Enable SharedArrayBuffer for GitHub Pages | |
run: | | |
cd ./build/web | |
apt-get install -y curl | |
curl -fsSL https://github.com/gzuidhof/coi-serviceworker/raw/master/coi-serviceworker.js > coi-serviceworker.js | |
sed -i 's#\( <script src="index.js"></script>\)# <script src="coi-serviceworker.js"></script>\n\1#g' index.html | |
- name: Deploy 🚀 | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
single-commit: true | |
folder: build/web # The folder the action should deploy. |