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

Meta: Do not tag release without public changes #427

Conversation

carlfriedrich
Copy link
Collaborator

This is mostly a refactoring of our GitHub actions. The tag workflow and script have been removed completely, since the release action will implicitly create the release tag if it does not exit, yet. This makes sure that we do not create a tag when there will be no release.

We have only one workflow now, which contains two jobs: one for generating the changelog and one for creating the release.

The changelog job will generate the changelog and upload it as an artifact if there are public changes. The release version, which previously was determined in the tag script, is now determined within this job, so that we can pass it to the release job.

The release job will run only if the changelog job was successful, i.e. if there are public changes. It will create a tag and a GitHub release with the given version number.

The workflow will run on the first day of every month for our regular automatic monthly releases.
It will also run on every tag push, so that we still can create a release manually if necessary. The release action will implicitly use the existing tag for the release then.

Fixes #413
Closes #414

Check list

  • I have performed a self-review of my code
  • I have commented my code in hard-to-understand areas
  • I have made corresponding changes to the documentation

Description

Type of change

  • Bug fix
  • New feature
  • Refactor
  • Breaking change
  • Documentation change

Test environment

  • Shell
    • bash
    • zsh
    • fish
  • OS
    • Linux
    • Mac OS X
    • Windows
    • Others:

This is mostly a refactoring of our GitHub actions. The tag workflow and
script have been removed completely, since the release action will
implicitly create the release tag if it does not exit, yet. This makes
sure that we do not create a tag when there will be no release.

We have only one workflow now, which contains two jobs: one for
generating the changelog and one for creating the release.

The changelog job will generate the changelog and upload it as an
artifact if there are public changes. The release version, which
previously was determined in the tag script, is now determined within
this job, so that we can pass it to the release job.

The release job will run only if the changelog job was successful, i.e.
if there are public changes. It will create a tag and a GitHub release
with the given version number.

The workflow will run on the first day of every month for our regular
automatic monthly releases.
It will also run on every tag push, so that we still can create a
release manually if necessary. The release action will implicitly use
the existing tag for the release then.

Fixes wfxr#413
Closes wfxr#414
@carlfriedrich
Copy link
Collaborator Author

FYI: I have tested this new workflow in my fork of the repo.

Copy link
Collaborator

@cjappl cjappl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable enough to me, few questions then LGTM

Copy link
Collaborator

@sandr01d sandr01d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should do what we want and looks very readable to me. Well done, @carlfriedrich!

@carlfriedrich
Copy link
Collaborator Author

@sandr01d @cjappl Thanks for your reviews!

@carlfriedrich carlfriedrich merged commit aec8b1f into wfxr:main Mar 14, 2025
4 checks passed
@carlfriedrich carlfriedrich deleted the do-not-create-tag-without-public-changes branch March 14, 2025 06:01
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.

missing forgit-24.12.0.tar.gz for 24.12.0 tag
3 participants