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): automated release workflow #1072

Merged
merged 48 commits into from
Oct 30, 2023
Merged

feat(ci): automated release workflow #1072

merged 48 commits into from
Oct 30, 2023

Conversation

shiftinv
Copy link
Member

@shiftinv shiftinv commented Jul 9, 2023

Summary

only took like... 1.5 years, but I finally got around to it.

This automates ~80% of the current release procedure, leaving only those actions that require elevated perms (due to branch protection) or manual work (writing announcements).
The new and improved:tm: release process can be found here, and for the most part now requires some patience and clicking a few buttons.

This also requires some setup in the repo and on PyPI, which I've already done.

Testing

Testing this fully without actually releasing a new version is pretty much impossible, but you can take a look at the PRs and workflow runs in my test repo:

  1. Automatic changelog + version PR: release: v2.99.0 disnake-test/disnake#1
  2. Tagging a new version automatically triggers GitHub + PyPI releases: https://github.com/disnake-test/disnake/actions/runs/5499894435
  3. If the released version was a x.y.0 release, a dev version PR is created as well: chore: update version to v2.100.0a disnake-test/disnake#2

Future Work

Arguably, some parts of this could be automated further, like the readthedocs step. However, https://xkcd.com/1205/.

Checklist

  • If code changes were made, then they have been tested
    • I have updated the documentation to reflect the changes
    • I have formatted the code properly by running pdm lint
    • I have type-checked the code by running pdm pyright
  • This PR fixes an issue
  • This PR adds something new (e.g. new method or parameters)
  • This PR is a breaking change (e.g. methods or parameters removed/renamed)
  • This PR is not a code change (e.g. documentation, README, ...)

xkcd

@shiftinv shiftinv added s: needs review Issue/PR is awaiting reviews t: meta Changes to the project itself (CI, configs, etc.) skip news labels Jul 9, 2023
@shiftinv shiftinv added this to the disnake v2.10 milestone Jul 9, 2023
@shiftinv
Copy link
Member Author

Did another round of testing and fixing (tiny) bugs, this should be good now. :shipit:
I'll do a trial run with v2.9.1 later, fingers crossed

@shiftinv shiftinv merged commit 627e9e9 into master Oct 30, 2023
26 checks passed
@shiftinv shiftinv deleted the ci/release-workflow branch October 30, 2023 19:27
shiftinv added a commit that referenced this pull request Oct 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
s: needs review Issue/PR is awaiting reviews skip news t: meta Changes to the project itself (CI, configs, etc.)
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant