Skip to content

centralise versioning across rust and lua individually (#179) #395

centralise versioning across rust and lua individually (#179)

centralise versioning across rust and lua individually (#179) #395

Workflow file for this run

name: Rust
on:
push:
branches: [ master ]
tags: [ 'v*' ] # Tag trigger for releases
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
build_bridge:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- name: Install alsa dev
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install libasound2-dev
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build -p kissmp-bridge --verbose --release
- name: Store Artifacts
uses: actions/upload-artifact@v4
with:
name: build_results_bridge-${{ matrix.os }}
path: |
./target/release/kissmp-bridge
./target/release/kissmp-bridge.exe
build_server:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build -p kissmp-server --verbose --release
- name: Store Artifacts
uses: actions/upload-artifact@v4
with:
name: build_results_server-${{ matrix.os }}
path: |
./target/release/kissmp-server
./target/release/kissmp-server.exe
build_master:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build -p kissmp-master --verbose --release
- name: Store Artifacts
uses: actions/upload-artifact@v4
with:
name: build_results_master_server
path: |
./target/release/kissmp-master
release:
needs: [build_bridge, build_server, build_master]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
# Download Linux artifacts
- uses: actions/download-artifact@v4
with:
name: build_results_bridge-ubuntu-latest
path: release_staging/linux
- uses: actions/download-artifact@v4
with:
name: build_results_server-ubuntu-latest
path: release_staging/linux
# Download Windows artifacts
- uses: actions/download-artifact@v4
with:
name: build_results_bridge-windows-latest
path: release_staging/windows
- uses: actions/download-artifact@v4
with:
name: build_results_server-windows-latest
path: release_staging/windows
# Zip everything
- name: Package Zip Files
run: |
cd KISSMultiplayer
zip -r ../release_staging/KISSMultiplayer.zip .
cd ../release_staging
zip -r ../KissMP_${{ github.ref_name }}.zip *
# Publish release
- name: Publish GitHub Release
uses: softprops/action-gh-release@v2
with:
files: KissMP_${{ github.ref_name }}.zip
name: Release ${{ github.ref_name }}