name: Create release
on:
push:
tags:
- 'v*'
env:
TOOLCHAIN: stable
jobs:
release:
name: Create new release
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create new release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
makeLatest: true
- name: Update changelog
uses: dropseed/changerelease@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
changelog: CHANGELOG.md
publish:
name: Publish
needs: release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ env.TOOLCHAIN }}
- name: Cargo login
run: cargo login ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Cargo dry run
run: cargo publish --dry-run
- name: Cargo publish
run: cargo publish