name: Release
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
on:
push:
tags: ["v*"]
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
archive: rusting-engine-linux-x86_64.tar.gz
- os: windows-latest
archive: rusting-engine-windows-x86_64.zip
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build release tools
run: cargo build --release --bin editor --bin user_main --bin cook_scene
- name: Package Linux archive
if: runner.os == 'Linux'
shell: bash
run: ./scripts/package_release.sh "${{ matrix.archive }}"
- name: Package Windows archive
if: runner.os == 'Windows'
shell: pwsh
run: ./scripts/package_release.ps1 "${{ matrix.archive }}"
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.archive }}
path: dist/${{ matrix.archive }}
publish:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: artifacts/*