cicd-automation

安装量: 62
排名: #12003

安装

npx skills add https://github.com/autumnsgrove/groveengine --skill cicd-automation

CI/CD Automation Skill When to Activate Activate this skill when: Creating GitHub Actions workflows Setting up automated testing Configuring deployment pipelines Adding code quality checks to CI Automating release processes Quick Start Workflow Create .github/workflows/ci.yml : name : CI on : push : branches : [ main , develop ] pull_request : branches : [ main ] jobs : test : runs-on : ubuntu - latest steps : - uses : actions/checkout@v4 - name : Install UV run : curl - LsSf https : //astral.sh/uv/install.sh | sh - name : Add UV to PATH run : echo "$HOME/.cargo/bin"

$GITHUB_PATH

name : Install dependencies run : uv sync - name : Run tests run : uv run pytest tests/ - v - - cov=src - name : Lint with Ruff run : uv run ruff check src/ tests/ - name : Check formatting run : uv run black - - check src/ tests/ Workflow Structure .github/ └── workflows/ ├── ci.yml # Tests and linting ├── release.yml # Package publishing └── deploy.yml # Deployment Common Triggers

Every push and PR

on : [ push , pull_request ]

Specific branches

on : push : branches : [ main ] pull_request : branches : [ main ]

Manual trigger

on : workflow_dispatch

Scheduled (cron)

on : schedule : - cron : '0 0 * * *'

Daily at midnight

Testing with Coverage

name : Run tests with coverage run : | uv run pytest tests/ \ --cov=src \ --cov-report=xml \ --cov-report=term-missing \ --junitxml=junit.xml - name : Upload coverage to Codecov uses : codecov/codecov - action@v3 with : files : ./coverage.xml fail_ci_if_error : true Multi-Environment Testing jobs : test : runs-on : $ { { matrix.os } } strategy : matrix : os : [ ubuntu - latest , macos - latest , windows - latest ] python-version : [ '3.10' , '3.11' , '3.12' ] steps : - uses : actions/checkout@v4 - uses : actions/setup - python@v5 with : python-version : $ { { matrix.python - version } } - name : Install UV run : curl - LsSf https : //astral.sh/uv/install.sh | sh - name : Run tests run : uv run pytest tests/ Caching Dependencies - name : Cache UV dependencies uses : actions/cache@v3 with : path : | ~/.cache/uv .venv key : $ { { runner.os } } - uv - $ { { hashFiles(' **/pyproject.toml') } } restore-keys : | ${{ runner.os }}-uv- - name : Install dependencies run : uv sync Secrets in Workflows - name : Deploy env : API_KEY : $ { { secrets.ANTHROPIC_API_KEY } } DATABASE_URL : $ { { secrets.DATABASE_URL } } run : uv run python deploy.py Setting up secrets: Repository Settings → Secrets and variables → Actions Click "New repository secret" Add name and value Publishing to PyPI name : Publish on : release : types : [ published ] jobs : publish : runs-on : ubuntu - latest steps : - uses : actions/checkout@v4 - name : Install UV run : curl - LsSf https : //astral.sh/uv/install.sh | sh - name : Build package run : uv build - name : Publish to PyPI env : UV_PUBLISH_TOKEN : $ { { secrets.PYPI_TOKEN } } run : uv publish - - token $UV_PUBLISH_TOKEN Docker Image Build - name : Build and push Docker image uses : docker/build - push - action@v5 with : context : . push : true tags : user/app : latest , user/app : $ { { github.sha } } Status Badges Add to README: ! CI codecov
Best Practices DO ✅ Run tests on every push Cache dependencies for speed Use matrix for cross-platform testing Separate CI from CD workflows Use secrets for sensitive data DON'T ❌ Skip linting in CI Ignore test failures Store secrets in code Run unnecessary jobs When to Use CI/CD Start with: Running tests on every push Code quality checks (lint, format) Security scanning Add later: Deployment automation Docker builds Documentation generation Related Resources See AgentUsage/ci_cd_patterns.md for complete documentation including: Complex workflow examples Environment-specific configs Advanced caching strategies Deployment patterns

返回排行榜