Skip to content

Create a github action for the release process #206

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

Closed
nwneisen opened this issue Jun 21, 2023 · 0 comments · Fixed by #273
Closed

Create a github action for the release process #206

nwneisen opened this issue Jun 21, 2023 · 0 comments · Fixed by #273
Labels
build documentation Improvements or additions to documentation enhancement New feature or request

Comments

@nwneisen
Copy link
Contributor

As a followup to #205, the release process should be moved into a github action so that it can be easy triggered by a maintainer and wont depend on any one individuals machine.

There is currently a workflow located at .github/workflows/publish.yml which triggers when a release is created but it does package everything correctly. It compiles the binaries for each platform but it doesn't package them for each OS, follow the correct naming convention, or removing debugging info. If this is used, then it will need to be modified in some way.

I made an initial attempt at running the project's make commands in CI and ran in to issues because they use a docker container to build everything. There are GHA that can be used for this but they will require more investigation. Getting these to work would set us up with the artifacts that are ready to go and match previous builds. I'm also a fan of being able to build a project with the same command in CI and locally.

Overall suggested release process:

  1. A maintainer creates a new draft release in the repo's releases section
    a. The name should follow semantic convention prepended with a 'v'
    b. A tag with the same name should be created on the latest commit to master
    c. Release notes should be generated using the previous tag and the new tag as the range
    d. Check the box to Set as a pre-release
    e. Save as a draft
  2. The release GHA should now trigger to build and publish the release artifacts
  • Use the newly created tag for the release version and artifact name
    This is currently pulled from files and requires a release PR to update them. I'd like to change it so no release PR is needed. Non release builds could use something like dev or {latest tag}-{commits since latest tag}-{commit sha}. The git command to check if there is a tag on the current commit defaults to something along these lines
  • Build the artifacts in parallel
  1. The release can now go through a review process to look for any issues
  2. Change the draft to a published release
  3. Celebrate 🍻

Summary

  • Create a github action to build the release artifacts
  • Change the project's version to be pulled from the
  • Document the process in CONTRIBUTING.md
@nwneisen nwneisen added documentation Improvements or additions to documentation enhancement New feature or request build labels Jun 21, 2023
@nwneisen nwneisen changed the title Create a GHA for the release process Create a github action for the release process Jun 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant