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
Release process automation #252
Conversation
Codecov Report
@@ Coverage Diff @@
## master #252 +/- ##
=======================================
Coverage 92.79% 92.79%
=======================================
Files 3 3
Lines 222 222
Branches 31 31
=======================================
Hits 206 206
Misses 10 10
Partials 6 6 Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm it install poetry in the job?
.github/workflows/main.yml
Outdated
@@ -9,6 +9,38 @@ on: | |||
workflow_dispatch: | |||
|
|||
jobs: | |||
lint: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The logs for the Build package step shows the name of the built artifacts is pytest-asyncio-0.1.dev1+ga5205f2.tar.gz
and pytest_asyncio-0.1.dev1+ga5205f2-py3-none-any.whl
. As far as I understand these are reused in the deploy
stage later.
I expected them to be to have a version like pytest_asyncio-0.16.1+gabcd1234…
not 0.1.dev1
.
The checkout action seems to do a shallow clone with --no-tags
. Is it possible this prevents setuptools_scm from determining the correct version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fetch-depth: 0
should fix it. Let's see
@Tinche we had it in the workflow previously. |
@asvetlov nice algorithm! I'd like to apply similar to my projects. However, I don't see how timers and confirmations are set in configuration. Could you enlighten me? |
@eirnym I cannot show you our Settings config, it is available for the project admin only. Please take a look at GitHub docs first and feel free to ask if you have a question. |
Merging, I'd like to build an alpha release to test the workflow |
The release is created on git tag pushing.
After linters and tests passed, the deploy stage is starting to wait for release approval.
@pytest-dev/pytest-asyncio-admin can approve. If nobody approved the release in 1 day -- deployment is discarded.
After the approval, we have 15 minutes timer for starting the deployment. During these 15 mins we the deployment task can be cancelled (just in case the deployer missed something).
The new release is pushed on PyPI (using generated PyPI upload token with
pytest-asyncio
scope) and on GitHub (visible as GitHub release).Tag naming: as usual.
v0.16
,v0.17
etc means final releases.v0.17a0
means 0.17 alpha 0 release..post
releases are supported but please avoid them -- Dependabot uses SemVer; SemVer handles it as pre-release. Better to publish the next micro-release instead.