name: Release
on:
push:
tags:
- 'v*'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
env:
CARGO_TERM_COLOR: always
permissions:
contents: write
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.release.outputs.upload_url }}
steps:
- uses: actions/checkout@v7
- name: Create GitHub Release
id: release
uses: softprops/action-gh-release@v3
with:
generate_release_notes: true
draft: false
prerelease: ${{ contains(github.ref, '-rc') || contains(github.ref, '-beta') || contains(github.ref, '-alpha') }}
build-package:
name: Build Crate Package
runs-on: ubuntu-latest
needs: create-release
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- name: Build crate package
run: cargo package --locked
- name: Upload crate to Release
uses: softprops/action-gh-release@v3
with:
files: target/package/*.crate