Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(CI): automate release #257

Merged
merged 5 commits into from
Apr 2, 2024
Merged

Conversation

doprz
Copy link
Contributor

@doprz doprz commented Apr 1, 2024

CI/CD Pipeline

git-cliff -> release-plz -> cargo-dist

Tools

git-cliff:

  • update changelog

release-plz:

  • Publish on crates.io
  • Create and push a git tag

cargo-dist:

  • Build and create installers
  • Create release

New Workflow

Release-plz makes releasing Rust packages child's play:

For every commit, release-plz creates a release Pull Request from CI.
The release Pull Request reminds the maintainer about the unpublished changes.
The maintainer reviews and merges the pull request.
Release-plz releases the updated packages from CI.
In short, release-plz makes releasing Rust packages as easy as clicking the pull request "merge" button.

@pacak You will need to follow this guide in order to finish setting up the PR:
https://release-plz.ieni.dev/docs/github/quickstart

Fixes #240

@pacak
Copy link
Owner

pacak commented Apr 1, 2024

The strategy of automating the release process by making a ticket and waiting worked :) Much appreciated :)

I guess I need to spend some time catching on the documentation of the projects use to how to use it.

@doprz
Copy link
Contributor Author

doprz commented Apr 1, 2024

The strategy of automating the release process by making a ticket and waiting worked :) Much appreciated :)

I guess I need to spend some time catching on the documentation of the projects use to how to use it.

No problem, happy to help!
Great work with cargo-show-asm, it's a great project and it's been very helpful with my own projects such as dipc and rs-cube.

@doprz
Copy link
Contributor Author

doprz commented Apr 1, 2024

@pacak I've updated my original comment to include a better overview of my PR and the new workflow.

Essentially when new commits are pushed to main a new release PR will be included which will update cargo-show-asm's version based on conventional commits and generate a changelog.

Once you approve and merge the release PR, this new version will be published on crates.io and a new git tag will be pushed which will then trigger cargo-dist. This in turn will build cargo-show-asm for various architectures and create a new release on GitHub with these build artifacts in addition to installers + release notes from the changelog.

I also think it would be helpful if you started using https://www.conventionalcommits.org/en/v1.0.0/ and added labels, assignees, reviewers, etc for your GitHub issues + PRs for easier organization as your project begins to grow even further.

@pacak pacak merged commit 12e343c into pacak:master Apr 2, 2024
12 checks passed
@pacak
Copy link
Owner

pacak commented Apr 2, 2024

Hmm... That's not a helpful error message...

https://github.com/pacak/cargo-show-asm/actions/runs/8522886441/job/23344024028

@doprz doprz deleted the feature/automate-release branch April 2, 2024 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automate release process
2 participants