mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 17:19:50 +00:00
a329298fc5
I suppose this counts as a second attempt to update to Godot 3.5? Only Web builds failed in the last commit, and I'm not sure if this will fix anything
217 lines
9.8 KiB
YAML
217 lines
9.8 KiB
YAML
name: "release"
|
|
|
|
on:
|
|
push:
|
|
branches: [ release ]
|
|
|
|
env:
|
|
GODOT_VERSION: 3.5
|
|
GODOT_VERSION_MAC: 3.5
|
|
RASPBERRY_PI_BUILDS_VERSION: 1.13.0
|
|
EXPORT_NAME: Pixelorama
|
|
TAG: v0.10.2
|
|
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
|
|
|
|
jobs:
|
|
export-windows:
|
|
name: Windows Export 🗔
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: docker://barichello/godot-ci:3.5
|
|
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 -q
|
|
echo 'export/windows/wine = "/usr/bin/wine"' >> ~/.config/godot/editor_settings-3.tres
|
|
echo 'export/windows/rcedit = "/github/home/.local/share/rcedit/rcedit-x64.exe"' >> ~/.config/godot/editor_settings-3.tres
|
|
- name: Checkout 🛎️
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- name: Setup 💻
|
|
run: |
|
|
mkdir -v -p build/windows-64bit build/windows-32bit ~/.local/share/godot/templates
|
|
mv /root/.local/share/godot/templates/${GODOT_VERSION}.stable ~/.local/share/godot/templates/${GODOT_VERSION}.stable
|
|
- name: Windows Build 🔧
|
|
run: |
|
|
godot -v --export "Windows Desktop 64-bit" ./build/windows-64bit/$EXPORT_NAME.exe
|
|
godot -v --export "Windows Desktop 32-bit" ./build/windows-32bit/$EXPORT_NAME.exe
|
|
- name: Copy pixelorama_data folder 📁
|
|
run: |
|
|
cp -R ./pixelorama_data ./build/windows-64bit
|
|
rm ./build/windows-64bit/pixelorama_data/.gdignore
|
|
cp -R ./pixelorama_data ./build/windows-32bit
|
|
rm ./build/windows-32bit/pixelorama_data/.gdignore
|
|
cp -R ./pixelorama_data ./build
|
|
rm ./build/pixelorama_data/.gdignore
|
|
- name: Zip 🗜️
|
|
working-directory: ./build
|
|
run: |
|
|
zip -r Pixelorama.Windows-64bit.zip windows-64bit
|
|
zip -r Pixelorama.Windows-32bit.zip 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/installer
|
|
- name: Upload Release Assets to itch.io 🎮
|
|
run: |
|
|
butler push ./build/windows-64bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-64 --userversion ${{env.TAG}}
|
|
butler push ./build/windows-32bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-32 --userversion ${{env.TAG}}
|
|
butler push ./build/installer ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-installer --userversion ${{env.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:3.5
|
|
steps:
|
|
- name: Checkout 🛎️
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- name: Setup 💻
|
|
run: |
|
|
mkdir -v -p build/linux-64bit build/linux-32bit build/linux-rpi4 ~/.local/share/godot/templates
|
|
mv /root/.local/share/godot/templates/${GODOT_VERSION}.stable ~/.local/share/godot/templates/${GODOT_VERSION}.stable
|
|
- name: Download Unofficial Godot Raspberry Pi 4 Builds 🍇
|
|
run: |
|
|
wget https://github.com/hiulit/Unofficial-Godot-Engine-Raspberry-Pi/releases/download/v${RASPBERRY_PI_BUILDS_VERSION}/godot_${GODOT_VERSION}-stable_rpi4.zip
|
|
unzip -a godot_${GODOT_VERSION}-stable_rpi4.zip
|
|
- name: Linux Build 🔧
|
|
run: |
|
|
godot -v --export "Linux/X11 64-bit" ./build/linux-64bit/$EXPORT_NAME.x86_64
|
|
godot -v --export "Linux/X11 32-bit" ./build/linux-32bit/$EXPORT_NAME.x86
|
|
godot -v --export "Raspberry Pi 4" ./build/linux-rpi4/$EXPORT_NAME.rpi4
|
|
- name: Give execute permission ☑️
|
|
run: |
|
|
chmod +x ./build/linux-64bit/$EXPORT_NAME.x86_64
|
|
chmod +x ./build/linux-32bit/$EXPORT_NAME.x86
|
|
chmod +x ./build/linux-rpi4/$EXPORT_NAME.rpi4
|
|
- name: Copy pixelorama_data folder 📁
|
|
run: |
|
|
cp -R ./pixelorama_data ./build/linux-64bit
|
|
rm ./build/linux-64bit/pixelorama_data/.gdignore
|
|
cp -R ./pixelorama_data ./build/linux-32bit
|
|
rm ./build/linux-32bit/pixelorama_data/.gdignore
|
|
- name: Create tar.gz archive 🗜️
|
|
run: |
|
|
cd build
|
|
tar zcvf Pixelorama.Linux-64bit.tar.gz linux-64bit
|
|
tar zcvf Pixelorama.Linux-32bit.tar.gz linux-32bit
|
|
tar zcvf Pixelorama.Linux-RPI4.tar.gz linux-rpi4
|
|
- name: Upload Release Assets to itch.io 🎮
|
|
run: |
|
|
butler push ./build/Pixelorama.Linux-64bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-64 --userversion ${{env.TAG}}
|
|
butler push ./build/Pixelorama.Linux-32bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-32 --userversion ${{env.TAG}}
|
|
butler push ./build/Pixelorama.Linux-RPI4.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-rpi4 --userversion ${{env.TAG}}
|
|
- name: Upload Release Asset 🚀
|
|
uses: svenstaro/upload-release-action@v2
|
|
with:
|
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
file: ./build/Pixelorama.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@v2
|
|
with:
|
|
submodules: true
|
|
- name: Setup environment 🔧
|
|
run: |
|
|
export GODOT_VERSION=${GODOT_VERSION_MAC}
|
|
export EXPORT_NAME=Pixelorama
|
|
- name: Download and extract export templates 💾
|
|
run: |
|
|
mkdir -v -p ~/.local/share/godot/templates/${GODOT_VERSION_MAC}.stable
|
|
curl -O https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION_MAC}/Godot_v${GODOT_VERSION_MAC}-stable_export_templates.tpz
|
|
unzip -a Godot_v${GODOT_VERSION_MAC}-stable_export_templates.tpz
|
|
mv ./templates/* ~/.local/share/godot/templates/${GODOT_VERSION_MAC}.stable
|
|
- name: Download Godot headless binary 🤖
|
|
run: |
|
|
wget https://github.com/huskeee/godot-headless-mac/releases/download/${GODOT_VERSION_MAC}-stable/Godot_v${GODOT_VERSION_MAC}-stable_mac_headless.64.zip
|
|
unzip -a Godot_v${GODOT_VERSION_MAC}-stable_mac_headless.64.zip
|
|
- name: Setup 💻
|
|
run: mkdir -v -p ./build/mac
|
|
- name: Mac Build 🔧
|
|
run: |
|
|
chown runner ./bin/Godot
|
|
chmod +x ./bin/Godot
|
|
./bin/Godot -v --export "Mac OSX" ./build/mac/Pixelorama.zip
|
|
- name: Make application executable 🔧
|
|
run: |
|
|
unzip -a ./build/mac/Pixelorama.zip -d ./build/mac
|
|
chmod +x ./build/mac/Pixelorama.app/Contents/MacOS/Pixelorama
|
|
rm ./build/mac/Pixelorama.zip
|
|
- name: Fix application icon 🖼
|
|
run: sips -s format icns ./build/mac/Pixelorama.app/Contents/Resources/icon.icns --out ./build/mac/Pixelorama.app/Contents/Resources/icon.icns
|
|
- name: Copy pixelorama_data folder 📁
|
|
run: |
|
|
cp -R ./pixelorama_data ./build/mac/Pixelorama.app/Contents/Resources
|
|
rm ./build/mac/Pixelorama.app/Contents/Resources/pixelorama_data/.gdignore
|
|
- name: Ad-hoc signing ✍️
|
|
run: codesign -s - --force --deep ./build/mac/Pixelorama.app
|
|
- name: Create DMG archive 🔧
|
|
run: hdiutil create -srcfolder ./build/mac -fs HFS+ -volname Pixelorama ./build/mac/Pixelorama.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/Pixelorama.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/Pixelorama.dmg
|
|
asset_name: ${{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:3.5
|
|
steps:
|
|
- name: Checkout 🛎️
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- name: Setup 💻
|
|
run: |
|
|
mkdir -v -p build/web ~/.local/share/godot/templates
|
|
mv /root/.local/share/godot/templates/${GODOT_VERSION}.stable ~/.local/share/godot/templates/${GODOT_VERSION}.stable
|
|
- name: Web Build 🔧
|
|
run: godot -v --export "HTML5" ./build/web/index.html
|
|
- name: Install rsync 📚
|
|
run: |
|
|
apt-get update && apt-get install -y rsync
|
|
- name: Deploy 🚀
|
|
uses: JamesIves/github-pages-deploy-action@4.4.0
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
folder: build/web # The folder the action should deploy.
|
|
- name: Upload Release Assets to itch.io 🎮
|
|
run: |
|
|
butler push ./build/web ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:web --userversion ${{env.TAG}}
|