/demo-github-actions

This repository helps demonstrate various Github Actions capabilities.

Primary LanguagePythonApache License 2.0Apache-2.0

Demo - Github Actions

This repository helps demonstrate various Github Actions capabilities.

Background

This repository simulates what a Python project might look like within Github. In addition to leveraging Github Actions, this project assumes the use of Poetry for Python environment management, pytest for Python testing, and Dagger for reproducibility with testing.

See the tree below for a brief description of directories and files.

├── .github (used for Github Actions workflow specifications)
│   └── workflows
│       ├── 1.example-action.yml
│       ├── 2.run-python-file.yml
│       ├── 3.run-matrixed-pytest-ghactions.yml
│       └── 4.run-matrixed-pytest-dagger.yml
│
├── dagger (used for running Dagger actions)
│   └── run_tests.py
│
├── poetry.lock (used for Python environment references via Poetry)
├── pyproject.toml (used for Python environment specification via Poetry)
│
└── python_app (used for simulating a Python package or application)
    ├── __init__.py
    ├── main.py
    └── tests (used for simulating a Python package or application tests)
        └── test_main.py

Overview of Actions

  • 1.example-action.yml: demonstrates how to run a snippet of Python code in a basic Github Actions workflow.
  • 2.run-python-file.yml: demonstrates how to reliably reproduce the environment by installing dependencies using Poetry, and then run a Python file in that environment.
  • 3.run-matrixed-pytest-ghactions.yml: demonstrates how to run pytest tests against multiple versions of Python (i.e., "matrixed" Python versions) using Github Actions.
  • 4.run-matrixed-pytest-dagger.yml: demonstrates how to run matrixed Python versions for confirming passing pytest tests using Github Actions and Dagger together.