Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,17 @@ jobs:
run: cargo package --locked --list

- name: Run release-plz
id: release_plz
uses: release-plz/action@v0.5
with:
command: release
dry_run: ${{ inputs.operation == 'publish-dry-run' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Require release output
if: ${{ steps.release_plz.outputs.releases_created != 'true' }}
run: |
echo "release-plz completed without creating a release." >&2
echo "Check that Cargo.toml contains an unpublished version and that release-plz is allowed to release the current main commit." >&2
exit 1
6 changes: 6 additions & 0 deletions docs/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ intent check treats these paths as release-affecting: `Cargo.toml`, `Cargo.lock`
4. Run `Release` from `main` with `publish-dry-run`.
5. If the dry run passes, run `Release` again with `publish`.

The manual publish job uses `release_always = true` because the workflow is not
triggered on every merge; it only runs when a maintainer explicitly selects a
publish operation. The job fails if release-plz reports that it created no
release, so a green publish run means a crate/GitHub release was actually
produced.

release-plz publishes unpublished package versions to crates.io, creates the bare
SemVer tag such as `0.2.0`, and creates the GitHub release from the generated
changelog. Bare SemVer tags intentionally match the existing `0.1.0` tag.
2 changes: 1 addition & 1 deletion release-plz.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pr_labels = ["release"]
pr_name = "chore(release): {{ version }}"
publish = true
publish_timeout = "30m"
release_always = false
release_always = true
release_commits = '^((feat|fix|perf|refactor|revert)(\([a-z0-9][a-z0-9._/-]*\))?(!)?|[a-z]+(\([a-z0-9][a-z0-9._/-]*\))?!): .+'
repo_url = "https://github.com/f0rr0/pglite-oxide"
semver_check = true
Expand Down