Files
2026-01-12 17:00:46 -05:00

53 lines
1.4 KiB
YAML

name: Create release
on:
push:
tags:
- "v*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: "main"
fetch-depth: 0
- name: Setup Rust nightly
uses: ./.forgejo/actions/setup-rust
with:
rust-version: nightly
- name: Setup towncrier
run: uv tool install towncrier
- name: Generate release notes
run: cargo run --package xtask --no-default-features -- generate-release-notes > /tmp/RELEASE.md
- name: Create release
run: |
set -euo pipefail
jq -n --rawfile body /tmp/RELEASE.md '{"body": $body, "tag_name": "${{ forgejo.ref_name }}", "name": "${{ forgejo.ref_name }}"}' \
| curl --fail-with-body \
--data-binary @- \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Authorization: token ${{ forgejo.token }}" \
-X POST \
"${{ forgejo.server_url }}/api/v1/repos/${{ forgejo.repository }}/releases"
- name: Remove news fragments
run: git rm -r changelog.d/
- name: Commit changes
run: |
git config user.email "forgejo@mail.ellis.link"
git config user.name "Ellis Git"
git commit -am "chore: Post-release cleanup"
git push origin HEAD:refs/heads/main