name: release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwayland-dev pkg-config
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.93.0
targets: x86_64-unknown-linux-gnu
- name: Build release binary
run: cargo build --locked --release --target x86_64-unknown-linux-gnu
- name: Build release archive
run: |
version="${GITHUB_REF_NAME#v}"
scripts/build-release-archive.sh "${version}" x86_64-unknown-linux-gnu
- name: Publish GitHub release assets
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
tag="${GITHUB_REF_NAME}"
if ! gh release view "${tag}" >/dev/null 2>&1; then
gh release create "${tag}" --verify-tag --title "${tag}" --generate-notes
fi
gh release upload "${tag}" --clobber \
dist/*.tar.xz \
dist/SHA256SUMS