Deployment to itch.io #39
Workflow file for this run
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: Deployment to itch.io | |
on: | |
push: | |
tags: [ "*.*.*" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
deploy-wasm-linux-windows: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install system dependencies | |
run: | | |
sudo apt-get install libx11-dev libxi-dev libgl1-mesa-dev gcc-mingw-w64 libasound2-dev | |
# -L follows redirects | |
# -O specifies output name | |
curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default | |
unzip butler.zip | |
# GNU unzip tends to not set the executable bit even though it's set in the .zip | |
chmod +x butler | |
# just a sanity check run (and also helpful in case you're sharing CI logs) | |
./butler -V | |
- name: Build | |
run: cargo build --release --bin bioengineer | |
- name: Run tests | |
run: cargo test --release | |
- name: Package Linux | |
run: | | |
mkdir -p bioengineer_linux | |
cp -r assets/ bioengineer_linux/ | |
cp target/release/bioengineer bioengineer_linux/ | |
zip -FS -r bioengineer_linux.zip bioengineer_linux/* | |
sha512sum bioengineer_linux.zip | |
- name: Deploy Linux to itch.io | |
env: | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
run: ./butler push bioengineer_linux.zip jmmut/Bioengineer:linux | |
- name: Compile and package WebAssembly | |
run: | | |
rustup target add wasm32-unknown-unknown | |
cargo build --release --target wasm32-unknown-unknown --bin bioengineer | |
# the folder export_html contains the html wrapper so that the wasm can be used | |
mkdir -p bioengineer_html | |
cp -r export_html/* bioengineer_html/ | |
cp -r target/wasm32-unknown-unknown/release/*.wasm bioengineer_html/ | |
cp -r assets/ bioengineer_html/ | |
zip -FS -r wasm.zip bioengineer_html/* | |
sha512sum wasm.zip | |
- name: Deploy WebAssembly to itch.io | |
env: | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
run: ./butler push wasm.zip jmmut/Bioengineer:html5 | |
- name: Compile and package Windows | |
run: | | |
rustup target add x86_64-pc-windows-gnu | |
cargo build --release --target x86_64-pc-windows-gnu --bin bioengineer | |
mkdir -p bioengineer_windows | |
cp -r assets/ bioengineer_windows/ | |
cp target/x86_64-pc-windows-gnu/release/bioengineer.exe bioengineer_windows/ | |
zip -FS -r bioengineer_windows.zip bioengineer_windows/* | |
sha512sum bioengineer_windows.zip | |
- name: Deploy Windows to itch.io | |
env: | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
run: ./butler push bioengineer_windows.zip jmmut/Bioengineer:windows | |
deploy-mac: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install system dependencies | |
run: | | |
# -L follows redirects | |
# -O specifies output name | |
curl -L -o butler.zip https://broth.itch.ovh/butler/darwin-amd64/LATEST/archive/default | |
unzip butler.zip | |
# GNU unzip tends to not set the executable bit even though it's set in the .zip | |
chmod +x butler | |
# just a sanity check run (and also helpful in case you're sharing CI logs) | |
./butler -V | |
- name: Build | |
run: cargo build --release --bin bioengineer | |
- name: Run tests | |
run: cargo test --release | |
- name: Package Mac | |
run: | | |
mkdir -p bioengineer_mac | |
cp -r assets/ bioengineer_mac/ | |
cp target/release/bioengineer bioengineer_mac/ | |
zip -FS -r bioengineer_mac.zip bioengineer_mac/* | |
# sha512sum bioengineer_mac.zip # error: sha512sum doesn't exist in mac. TODO: Find alternative. | |
- name: Deploy Mac to itch.io | |
env: | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
run: ./butler push bioengineer_mac.zip jmmut/Bioengineer:mac |