From 05af7d8d978fcb62a282b29e0f5ef1d205233b92 Mon Sep 17 00:00:00 2001 From: eshork <1829176+eshork@users.noreply.github.com> Date: Sat, 25 Apr 2026 21:17:06 -0400 Subject: [PATCH] Add automated release workflow with release-plz Adds release-plz configuration and GitHub Actions workflow for automated crates.io publishing via trusted publishing (OIDC). On push to main, release-plz creates a release PR with version bumps and changelogs. When the release PR is merged, it publishes crates in dependency order (libudx -> peeroxide-dht -> peeroxide) and creates GitHub releases with tags. --- .github/workflows/release.yml | 46 +++++++++++++++++++++++++++++++++++ release-plz.toml | 19 +++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 .github/workflows/release.yml create mode 100644 release-plz.toml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b50ed3c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,46 @@ +name: Release + +on: + push: + branches: + - main + +jobs: + release-plz-pr: + name: Release PR + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'Rightbracket' }} + permissions: + contents: write + pull-requests: write + concurrency: + group: release-plz-${{ github.ref }} + cancel-in-progress: false + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dtolnay/rust-toolchain@stable + - uses: release-plz/action@v0.5 + with: + command: release-pr + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + release-plz-release: + name: Release + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'Rightbracket' }} + permissions: + contents: write + id-token: write + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dtolnay/rust-toolchain@stable + - uses: release-plz/action@v0.5 + with: + command: release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/release-plz.toml b/release-plz.toml new file mode 100644 index 0000000..1ddc904 --- /dev/null +++ b/release-plz.toml @@ -0,0 +1,19 @@ +[workspace] +release_always = false +semver_check = true +git_release_enable = true +git_tag_enable = true +changelog_update = true +pr_labels = ["release"] + +[[package]] +name = "libudx" +version_group = "peeroxide" + +[[package]] +name = "peeroxide-dht" +version_group = "peeroxide" + +[[package]] +name = "peeroxide" +version_group = "peeroxide"