| name | cicd-setup |
| description | Sets up a CI/CD pipeline for Python projects using GitHub Actions. Includes templates for PR checks, deployment via SSH, pre-commit hooks, and email notifications. Use this skill when a user wants to create a new CI/CD pipeline for a Python project. |
CI/CD Pipeline Setup Skill
This skill provides templates and guides to set up a CI/CD pipeline for a Python project using GitHub Actions.
Core Workflow
Set up Pre-commit Hooks:
- Copy the
.pre-commit-config.yamlfromassets/pre-commit/to the root of the user's repository. - Guide the user to install pre-commit (
pip install pre-commit) and set it up (pre-commit install).
- Copy the
Set up GitHub Actions Workflows:
- Create a
.github/workflows/directory in the user's repository if it doesn't exist. - Copy
assets/github_actions/python_pr_workflow.ymlto.github/workflows/. This workflow runs tests and linting on every pull request tomain. - Copy
assets/github_actions/python_deploy_workflow.ymlto.github/workflows/. This workflow deploys the application when a PR is merged tomain.
- Create a
Configure Secrets:
- Guide the user to add the necessary secrets for deployment and notifications as described in
references/secret_management.md.
- Guide the user to add the necessary secrets for deployment and notifications as described in
Set Up Branch Protection:
- Guide the user through setting up branch protection rules for the
mainbranch as detailed inreferences/branch_protection.md.
- Guide the user through setting up branch protection rules for the
Bundled Resources
Assets
assets/github_actions/python_pr_workflow.yml: Workflow to run checks on pull requests.assets/github_actions/python_deploy_workflow.yml: Workflow to deploy on merge tomain.assets/notifications/email_notification_template.txt: Template for email notifications on successful deployment.assets/pre-commit/.pre-commit-config.yaml: Configuration for pre-commit hooks for Python projects.
References
references/secret_management.md: How to configure secrets for SSH and email.references/caching_strategies.md: Explanation of caching for Python dependencies.references/branch_protection.md: How to set up branch protection rules in GitHub.
Before starting, ask the user if they use requirements.txt, poetry, or pipenv for dependency management and adjust the caching steps in the workflows if necessary.