Skip to content

Repository files navigation

provide.io CI Tooling

Shared GitHub Actions and reusable workflows for provide.io projects.

License GitHub release

Key Features

  • Shared composite actions for Python CI workflows.
  • Reusable workflows for standardized pipeline setups.
  • Project templates and scripts for consistent automation.

πŸš€ Quick Start

Using Individual Actions

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: 80

Using Reusable Workflows

name: 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 }}

Documentation

Development

  • See CLAUDE.md for local development notes.
  • Run ./scripts/test-actions.sh to validate actions locally.

🀝 Contributing

We welcome contributions! Please see CLAUDE.md for local development guidance.

Development Setup

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.sh

πŸ“„ License

Licensed under the Apache License, Version 2.0. See LICENSE for details.


provide.io llc - Simplifying CI/CD for Python projects

πŸ“¦ Available Actions

Core Actions

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

Reusable Workflows

Workflow Description Documentation
python-ci.yml Complete CI pipeline workflow
python-release.yml Release workflow workflow

πŸ—οΈ Architecture

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

πŸ”§ Migration Guide

From Custom CI to Shared Actions

  1. Identify your current workflow patterns
  2. Choose the appropriate approach:
    • Individual actions for granular control
    • Reusable workflows for standardization
  3. Update your .github/workflows/ files
  4. Test thoroughly

Example Migration

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: pytest

After (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'

πŸ“‹ Project Templates

Ready-to-use workflow templates for different project types:

πŸ”„ Versioning

This repository uses semantic versioning:

  • v0 - Latest development (may have breaking changes)
  • v0.1 - Specific minor version
  • v0.1.0 - Exact version

Recommendation: Use v0 for latest features, pin to specific versions for stability.

πŸ“– Reference

πŸ†˜ Support

Copyright (c) provide.io LLC.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages