https://github.com/ciur/gh-playground
Playing around with GH actions
https://github.com/ciur/gh-playground
Last synced: 6 months ago
JSON representation
Playing around with GH actions
- Host: GitHub
- URL: https://github.com/ciur/gh-playground
- Owner: ciur
- License: mit
- Created: 2022-10-08T09:53:24.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-10-09T08:10:05.000Z (almost 3 years ago)
- Last Synced: 2025-02-16T02:25:56.723Z (8 months ago)
- Language: Python
- Size: 36.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Python Container Action Template
[](https://github.com/jacobtomlinson/python-container-action)
[](https://github.com/jacobtomlinson/python-container-action/actions)
[](https://github.com/jacobtomlinson/python-container-action/actions)This is a template for creating GitHub actions and contains a small Python application which will be built into a minimal [Container Action](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-a-docker-container-action). Our final container from this template is ~50MB, yours may be a little bigger once you add some code. If you want something smaller check out my [go-container-action template](https://github.com/jacobtomlinson/go-container-action/actions).
In `main.py` you will find a small example of accessing Action inputs and returning Action outputs. For more information on communicating with the workflow see the [development tools for GitHub Actions](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions).
> 🏁 To get started, click the `Use this template` button on this repository [which will create a new repository based on this template](https://github.blog/2019-06-06-generate-new-repositories-with-repository-templates/).
## Usage
Describe how to use your action here.
### Example workflow
```yaml
name: My Workflow
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Run action# Put your action repo here
uses: me/myaction@master# Put an example of your mandatory inputs here
with:
myInput: world
```### Inputs
| Input | Description |
|------------------------------------------------------|-----------------------------------------------|
| `myInput` | An example mandatory input |
| `anotherInput` _(optional)_ | An example optional input |### Outputs
| Output | Description |
|------------------------------------------------------|-----------------------------------------------|
| `myOutput` | An example output (returns 'Hello world') |## Examples
> NOTE: People ❤️ cut and paste examples. Be generous with them!
### Using the optional input
This is how to use the optional input.
```yaml
with:
myInput: world
anotherInput: optional
```### Using outputs
Show people how to use your outputs in another action.
```yaml
steps:
- uses: actions/checkout@master
- name: Run action
id: myaction# Put your action name here
uses: me/myaction@master# Put an example of your mandatory arguments here
with:
myInput: world# Put an example of using your outputs here
- name: Check outputs
run: |
echo "Outputs - ${{ steps.myaction.outputs.myOutput }}"
```### Test
Run tests:
pytest
Run from command line main module in dry run mode:
PYTHONPATH=. INPUT_FILES_LIST=pyproject.toml,example-data/version.py python ./banger/main.py
Above command will look for version in files ``pyproject.toml, example-data/version.py`` and
increment the patch part of the version and replace new version in ``pyptoject.toml, example-data/version.py``
files.## References
* [Creating GitHub Actions in Python](https://jacobtomlinson.dev/posts/2019/creating-github-actions-in-python/)