name: Build and upload binaries to release
on:
push:
tags:
- "v[0-9]+.*"
permissions:
contents: write
jobs:
create_release:
name: Create release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sed --in-place s/:TAG:/$GITHUB_REF_NAME/g RELEASE_NOTES.md
gh release create $GITHUB_REF_NAME --title "Release $GITHUB_REF_NAME" --notes-file RELEASE_NOTES.md
release_assets:
name: Release assets
needs: create_release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-26-intel]
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Print information
run: |
rustup show active-toolchain
rustc --version
cargo tree
- name: Build project
env:
SHELL_COMPLETIONS_DIR: completions
run: cargo build --release --locked
- name: Upload release assets
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: to-html
include: completions
token: ${{ secrets.GITHUB_TOKEN }}