Template repo to quickly make a tested and documented GitHub action in Python with Poetry
src/action_python_poetry
package.action-python-poetry
and action_python_poetry
with your project and package name.CODECOV_TOKEN
secret.__main__.py
in your package will be executed when the action is run. The environment variables your tests use can be set in pyproject.toml
and/or managed in test fixtures.action.yml
, README.md
, and .github/workflows/test-action.yml
to reflect your action's specification.LICENSE.md
as appropriate, making sure to retain the original copyright and permissions notices in your distribution according to the MIT license that this template is distributed under.README.md
.name: Run Action
on:
workflow_dispatch:
jobs:
action-python-poetry:
runs-on: ubuntu-latest
steps:
- uses: k2bd/action-python-poetry@v1
with:
helloName: k2bd
repeats: 3
helloName
Required
The name of the person to say hello to
repeats
Optional - default 1
Number of times to say hello to this person
Install Poetry and poetry install
the project
Note: if Poetry is managing a virtual environment for you, you may need to use poetry run poe
instead of poe
poe autoformat
- Autoformat codepoe lint
- Lintingpoe test
- Run TestsThe action can be tested locally by building the Dockerfile, e.g.
docker run -e INPUT_HELLONAME=k2bd -e INPUT_REPEATS=2 $(docker build -q .)
Additionally, there is a manual invocation action on the repo called "Test Action" that can be used to invoke the repo's version of the action from the Actions tab of the repo.
Release a new version by creating a new annotated semver tag e.g. git tag -a v1.2.3 -m "Release version 1.2.3"
and pushing it (git push --tags
). Then create a new release from that tag in GitHub.
There is an autoversioning action that keeps major version tags (v1
, v2
, ...) and latest
up-to-date when a new release is published.