AgentSkillsCN

devops-pipeline

为确保代码质量,实施预提交钩子与 GitHub Actions。当用户要求“搭建 CI/CD 流水线”、“添加预提交钩子”、“创建 GitHub Actions”、“设置质量门禁”、“自动化测试流程”、“在 CI 中集成代码风格检查”,或需要任何提升代码质量的 DevOps 自动化方案时,这一工具都能精准适配项目类型,并自动配置相应的工具链。

SKILL.md
--- frontmatter
name: devops-pipeline
description: Implement pre-commit hooks and GitHub Actions for quality assurance. Use when asked to "setup CI/CD", "add pre-commit hooks", "create GitHub Actions", "setup quality gates", "automate testing", "add linting to CI", or any DevOps automation for code quality. Detects project type and configures appropriate tools.

DevOps Pipeline

Implement comprehensive DevOps quality gates adapted to project type.

Workflow

1. Analyze Project

Detect project characteristics:

bash
# Check for package files and configs
ls -la package.json pyproject.toml Cargo.toml go.mod pom.xml build.gradle *.csproj 2>/dev/null
ls -la .eslintrc* .prettierrc* tsconfig.json mypy.ini setup.cfg ruff.toml 2>/dev/null
ls -la .pre-commit-config.yaml .github/workflows/*.yml 2>/dev/null

Identify:

  • Languages: JS/TS, Python, Go, Rust, Java, C#, etc.
  • Frameworks: React, Next.js, Django, FastAPI, etc.
  • Build system: npm, yarn, pnpm, pip, poetry, cargo, go, maven, gradle
  • Existing tooling: Linters, formatters, type checkers already configured

2. Configure Pre-commit Hooks

Install pre-commit framework:

bash
pip install pre-commit  # or brew install pre-commit

Create .pre-commit-config.yaml based on detected stack. See references/precommit-configs.md for language-specific configurations.

Install hooks:

bash
pre-commit install
pre-commit run --all-files  # Test on existing code

3. Create GitHub Actions Workflows

Create .github/workflows/ci.yml mirroring pre-commit checks. See references/github-actions.md for workflow templates.

Key principles:

  • Mirror pre-commit checks for consistency
  • Use caching for dependencies
  • Run on push and pull_request
  • Add matrix testing for multiple versions if needed

4. Verify Pipeline

bash
# Test pre-commit locally
pre-commit run --all-files

# Commit and push to trigger CI
git add .pre-commit-config.yaml .github/
git commit -m "ci: add pre-commit hooks and GitHub Actions"
git push

Check GitHub Actions tab for workflow status.

Tool Selection by Language

LanguageFormatterLinterSecurityTypes
JS/TSPrettierESLintnpm auditTypeScript
PythonBlack/RuffRuffBanditmypy
Gogofmtgolangci-lintgosecbuilt-in
RustrustfmtClippycargo-auditbuilt-in
Javagoogle-java-formatCheckstyleSpotBugs-

Resources