Shared GitHub Actions and reusable workflows for provide.io projects.
- Shared composite actions for Python CI workflows.
- Reusable workflows for standardized pipeline setups.
- Project templates and scripts for consistent automation.
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: provide-io/ci-tooling/actions/setup-python-env@v0
with:
python-version: '3.11'
- uses: provide-io/ci-tooling/actions/python-ci@v0
with:
coverage-threshold: 80name: CI
on: [push, pull_request]
jobs:
ci:
uses: provide-io/ci-tooling/.github/workflows/python-ci.yml@v0
with:
python-version: '3.11'
matrix-testing: true
run-security: true
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}- See CLAUDE.md for local development notes.
- Run
./scripts/test-actions.shto validate actions locally.
We welcome contributions! Please see CLAUDE.md for local development guidance.
git clone https://github.com/provide-io/ci-tooling.git
cd ci-tooling
# Test actions locally
./scripts/test-actions.sh
# Validate workflows
./scripts/validate-workflows.shLicensed under the Apache License, Version 2.0. See LICENSE for details.
provide.io llc - Simplifying CI/CD for Python projects
| Action | Description | Documentation |
|---|---|---|
setup-python-env |
Setup Python, UV, and workenv | action.yml |
setup-github-auth |
Configure GitHub authentication | README |
python-ci |
Combined lint, test, and build pipeline | action.yml |
python-release |
PyPI publishing | action.yml |
run-ci-tasks |
Run repo-specific CI tasks | action.yml |
build-psp |
Build PSP artifacts | action.yml |
| Workflow | Description | Documentation |
|---|---|---|
python-ci.yml |
Complete CI pipeline | workflow |
python-release.yml |
Release workflow | workflow |
provide-io/ci-tooling/
βββ .github/workflows/ # Reusable workflows
β βββ python-ci.yml # CI pipeline
β βββ python-release.yml # Release pipeline
βββ actions/ # Composite actions
β βββ build-psp/ # Build PSP artifacts
β βββ python-ci/ # Lint, test, build pipeline
β βββ python-release/ # Publishing
β βββ run-ci-tasks/ # Repo-specific CI hooks
β βββ setup-github-auth/ # GitHub auth setup
β βββ setup-python-env/ # Environment setup
βββ configs/ # Action configuration
βββ scripts/ # Utility scripts
βββ templates/ # Project templates
- Identify your current workflow patterns
- Choose the appropriate approach:
- Individual actions for granular control
- Reusable workflows for standardization
- Update your
.github/workflows/files - Test thoroughly
Before (custom workflow):
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install deps
run: uv sync --group dev
- name: Run ruff
run: ruff check src/
- name: Run tests
run: pytestAfter (using shared actions):
name: CI
on: [push, pull_request]
jobs:
ci:
uses: provide-io/ci-tooling/.github/workflows/python-ci.yml@v0
with:
python-version: '3.11'Ready-to-use workflow templates for different project types:
- Basic Python - Simple Python package
- Terraform Provider - Provider with tests
- Full Featured - Complete CI/CD with security
This repository uses semantic versioning:
v0- Latest development (may have breaking changes)v0.1- Specific minor versionv0.1.0- Exact version
Recommendation: Use v0 for latest features, pin to specific versions for stability.
- π Issue Tracker
- π¬ Discussions
Copyright (c) provide.io LLC.