Skip to main content

Declarative builder for Github Action Scripts

Project description

Python CI Workflow Documentation

This documentation provides an overview of the Python CI workflow implemented using GitHub Actions.

Workflow Overview

The Python CI workflow is triggered by two events: pushes to the main branch and pull requests targeting the main branch. It consists of a single job named build, which runs on an ubuntu-latest environment.

Steps

The following steps are executed as part of the workflow:

  1. Checkout code

    • Name: Checkout code
    • Uses: actions/checkout@v2
    • Description: This step checks out the repository code onto the runner.
  2. Setup Python

    • Name: Setup Python
    • Uses: actions/setup-python@v2
    • Description: This step sets up the Python environment for subsequent steps. The Python version used is 3.8.
  3. Install dependencies

    • Name: Install dependencies
    • Run: pip install -r requirements.txt
    • Description: This step installs the project dependencies by running pip install with the requirements specified in the requirements.txt file.
  4. Run tests

    • Name: Run tests
    • Run: pytest tests
    • Description: This step executes the test suite by running the pytest command with the tests directory.

Workflow Definition

The workflow is defined using the pyactions Python package. The workflow definition code is as follows:

from datetime import datetime
from pyciactions.github import Step, Job, On, Workflow, BranchEvent
from pyciactions import generate
import yaml

# Define 'on' conditions
on_push_main = On(push=BranchEvent(branches=["main"]))
on_pull_request_main = On(pull_request=BranchEvent(branches=["main"]))

# Define steps
checkout_code = Step(name="Checkout code",
                     uses="actions/checkout@v2")

setup_python = Step(name="Setup Python",
                    uses="actions/setup-python@v2",
                    with_={"python-version": "3.8"})

install_deps = Step(name="Install dependencies",
                    run="pip install -r requirements.txt")

run_tests = Step(name="Run tests",
                 run="pytest tests")

# Define job
job = Job("build",
          runs_on="ubuntu-latest",
          steps=[checkout_code, setup_python, install_deps, run_tests])

# Define workflow
workflow = Workflow(name="Python CI",
                    on=[on_push_main, on_pull_request_main],
                    jobs=[job])

# Generate workflow file
generate(workflow, ".github/workflows/python_ci.yml")

The generated workflow file, python_ci.yml, can be found in the .github/workflows directory of the repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyciactions-1.0.8a1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

pyciactions-1.0.8a1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file pyciactions-1.0.8a1.tar.gz.

File metadata

  • Download URL: pyciactions-1.0.8a1.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pyciactions-1.0.8a1.tar.gz
Algorithm Hash digest
SHA256 4c99ab934df125cfc725d4d140202523c46bd1a691a5ff18be846b36c2e2f74d
MD5 b24d3166649c3fb70c5a8c92ef526bbd
BLAKE2b-256 db13999172b3b6633366ee3ec6da6da3ae96a0980c2907987f4d6d6ed098ee7e

See more details on using hashes here.

File details

Details for the file pyciactions-1.0.8a1-py3-none-any.whl.

File metadata

File hashes

Hashes for pyciactions-1.0.8a1-py3-none-any.whl
Algorithm Hash digest
SHA256 a40ec135c35881761395d4d05854c418384c64976d7c1c891d2f0e60111ef964
MD5 3512a27e08993c98190e2e8e53748f86
BLAKE2b-256 32907325a19e28f2311762dcd81334ad90d3a6f8dc1a2d1b492cab3fc84e055a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page