dguest / pandamonium

Command line scripts to parse panda web api
BSD 3-Clause "New" or "Revised" License
27 stars 17 forks source link

ci: Publish releases to PyPI through GitHub releases #41

Closed matthewfeickert closed 4 years ago

matthewfeickert commented 4 years ago

This PR uses publication type releases to publish to PyPI by running the publication workflow on published release events and then verifying that the PyPI upload step is running on one. This follows what I'll call the corner model (which I now think is how GitHub Actions assumed people would do things):

This follows the example that is setup in corner with running the workflow on published release events and then only running the publish to PyPI step on that conditions. To instigate this workflow one would do the following:

$ git checkout master && git pull # verify that you're on master and synced with GitHub
$ bump2version <part> # bump the version and create a commit and tag
$ git push origin master --tags # push the commit and the tag to GitHub, causing TestPyPI to publish

This is a bit different from the pyhf way of doing things, but also lets things run through on TestPyPI on the tag before things are ever released.

Additionally, this PR adds support for manual triggers of workflows through workflow dispatch

Recommended squash and merge commit message:

* Publish to PyPI through published release events triggered through GitHub releases
   - c.f. https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#release
* Add workflow dispatch to all GitHub Action workflows
matthewfeickert commented 4 years ago

@dguest This is one possible solution to Issue #36. Let me know your thoughts.

matthewfeickert commented 4 years ago

@dguest Given that GitHub Actions is deprecating set-env and add-path commands the pyhf way of publishing is going to have to change so it seems that the method I'm implementing here is the best way forward for the time being.