Skip to content

Merge pull request #196 from deavid/dev-deavid #14

Merge pull request #196 from deavid/dev-deavid

Merge pull request #196 from deavid/dev-deavid #14

Workflow file for this run

name: Release Alpha (Rolling)
on:
push:
branches:
- alpha
permissions:
contents: write
actions: write
jobs:
prepare_assets:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Update APT & Install Build Dependencies
run: |
sudo apt-get update
sudo apt-get install -y imagemagick bc xbrzscale
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Restore Cargo cache
uses: Swatinem/rust-cache@v2
- name: Cache upscaled assets
uses: actions/cache@v4
with:
path: |
assets/upscaled
assets/index.postcard
key: ${{ runner.os }}-assets-${{ hashFiles('assets/img/**', 'upscale_assets.sh') }}
restore-keys: |
${{ runner.os }}-assets-
- name: Install just
uses: extractions/setup-just@v3
- name: Process assets
run: just upscale-assets
- name: Upload processed assets
uses: actions/upload-artifact@v4
with:
name: processed-assets
path: assets/
include-hidden-files: true
build_and_package:
runs-on: ubuntu-latest
needs: [prepare_assets]
strategy:
fail-fast: false
matrix:
include:
- id: linux
just_target: package-linux
- id: windows
just_target: package-windows
- id: wasm
just_target: package-wasm
- id: server
just_target: package-server
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download processed assets
uses: actions/download-artifact@v4
with:
name: processed-assets
path: assets/
- name: Update APT & Install Build Dependencies
run: |
sudo apt-get update
sudo apt-get install -y g++ pkg-config libx11-dev libasound2-dev libudev-dev libxkbcommon-x11-0 mingw-w64 zip imagemagick bc xbrzscale
- name: Install WASM deps
run: |
cargo install wasm-pack
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: x86_64-pc-windows-gnu,wasm32-unknown-unknown
- name: Restore Cargo cache
uses: Swatinem/rust-cache@v2
- name: Install just
uses: extractions/setup-just@v3
- name: Build and Package
env:
SKIP_UPSCALE: 1
run: just ${{ matrix.just_target }}
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
name: alpha-${{ matrix.id }}
path: releases/unhaunter-*
if-no-files-found: error
publish:
runs-on: ubuntu-latest
needs: [build_and_package]
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
pattern: alpha-*
merge-multiple: true
path: releases
- name: Overwrite alpha-latest rolling release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release delete alpha-latest --repo ${{ github.repository }} --yes --cleanup-tag 2>/dev/null || true
gh release create alpha-latest \
--repo ${{ github.repository }} \
--target ${{ github.sha }} \
--prerelease \
--title "Alpha Latest (rolling)" \
--notes "Latest alpha build from the alpha branch. Volatile. May break." \
releases/unhaunter-*
gh release edit alpha-latest --repo ${{ github.repository }} --latest=false
- name: Trigger Website Deployment
run: gh workflow run deploy-zola-site.yml --repo ${{ github.repository }} --ref website
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}