workflow-setup
Configures GitHub Actions CI/CD workflows for testing, linting, and deployment. Use when setting up automation for a Python, Rust, or TypeScript pro…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Table of Contents
- [When To Use](#when-to-use)
- [Standard Workflows](#standard-workflows)
- [Python Workflows](#python-workflows)
- [Rust Workflows](#rust-workflows)
- [TypeScript Workflows](#typescript-workflows)
- [Workflow](#workflow)
- [1. Check Existing Workflows](#1-check-existing-workflows)
- [2. Identify Missing Workflows](#2-identify-missing-workflows)
- [3. Render Workflow Templates](#3-render-workflow-templates)
- [4. Validate Workflows](#4-validate-workflows)
- [Workflow Best Practices](#workflow-best-practices)
- [Use Latest Action Versions](#use-latest-action-versions)
- [Matrix Testing (Python)](#matrix-testing-python)
- [Caching Dependencies](#caching-dependencies)
- [Updating Workflows](#updating-workflows)
- [Related Skills](#related-skills)
Workflow Setup Skill
Set up GitHub Actions workflows for continuous integration and deployment.
When To Use
- Need CI/CD for a new project
- Adding missing workflows to existing project
- Updating workflow versions to latest
- Automating testing and quality checks
- Setting up deployment pipelines
When NOT To Use
- GitHub Actions workflows already configured and current
- Project uses different CI platform (GitLab CI, CircleCI, etc.)
- Not hosted on GitHub
- Use
/attune:upgrade-projectinstead for updating existing workflows
Standard Workflows
Python Workflows
- test.yml - Run pytest on push/PR
- lint.yml - Run ruff linting
- typecheck.yml - Run mypy type checking
- publish.yml - Publish to PyPI on release
Rust Workflows
- ci.yml - Combined test/lint/check workflow
- release.yml - Build and publish releases
TypeScript Workflows
- test.yml - Run Jest tests
- lint.yml - Run ESLint
- build.yml - Build for production
- deploy.yml - Deploy to hosting (Vercel, Netlify, etc.)
Workflow
1. Check Existing Workflows
ls -la .github/workflows/
Verification: Run the command with --help flag to verify availability.
2. Identify Missing Workflows
from project_detector import ProjectDetector
detector = ProjectDetector(Path.cwd())
language = detector.detect_language()
required_workflows = {
"python": ["test.yml", "lint.yml", "typecheck.yml"],
"rust": ["ci.yml"],
"typescript": ["test.yml", "lint.yml", "build.yml"],
}
missing = detector.get_missing_configurations(language)
Verification: Run pytest -v to verify tests pass.
3. Render Workflow Templates
workflows_dir = Path(".github/workflows")
workflows_dir.mkdir(parents=True, exist_ok=True)
for workflow in required_workflows[language]:
template = templates_dir / language / "workflows" / f"{workflow}.template"
output = workflows_dir / workflow
engine.render_file(template, output)
print(f"✓ Created: {output}")
Verification: Run the command with --help flag to verify availability.
4. Validate Workflows
# Syntax check (requires act or gh CLI)
gh workflow list
# Or manually check YAML syntax
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/test.yml'))"
Verification: Run pytest -v to verify tests pass.
Workflow Best Practices
Use Latest Action Versions
# Good - pinned to major version
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
# Avoid - unpinned or outdated
- uses: actions/checkout@v2
- uses: actions/setup-python@latest
Verification: Run pytest -v to verify tests pass.
Matrix Testing (Python)
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
os: [ubuntu-latest, macos-latest, windows-latest]
Verification: Run pytest -v to verify tests pass.
Caching Dependencies
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip' # Cache pip dependencies
Verification: Run python --version to verify Python environment.
Shell Script Safety in Workflows
When writing inline shell scripts in workflows, ensure proper exit code handling:
# BAD - pipeline masks exit code
- run: |
make typecheck 2>&1 | grep -v "^make\["
echo "Typecheck passed" # Runs even if make failed!
# GOOD - use pipefail
- run: |
set -eo pipefail
make typecheck 2>&1 | grep -v "^make\["
# GOOD - capture exit code explicitly
- run: |
output=$(make typecheck 2>&1) || exit_code=$?
echo "$output" | grep -v "^make\[" || true
exit ${exit_code:-0}
For complex wrapper scripts, run /pensive:shell-review before integrating.
Updating Workflows
To update workflows to latest versions:
/attune:upgrade-project --component workflows
Verification: Run the command with --help flag to verify availability.
Related Skills
Skill(attune:project-init)- Full project initializationSkill(sanctum:pr-prep)- PR preparation with CI checks
Exit Criteria
- [ ] All required workflow files for the detected language exist under
.github/workflows/
(Python: test.yml + lint.yml + typecheck.yml; Rust: ci.yml; TypeScript: test.yml + lint.yml +
build.yml) and contain valid YAML syntax verified by
python3 -c "import yaml; yaml.safe_load(open('...'))".
- [ ]
gh workflow listreturns each created workflow file as an entry, confirming GitHub
recognizes the workflow definitions.
- [ ] Any inline shell script in a workflow uses
set -eo pipefailor explicit exit-code
capture; pipeline-masked failures (cmd | grep) without pipefail are flagged as errors.
- [ ] If the project uses a CI platform other than GitHub Actions (GitLab CI, CircleCI), the
skill reports this incompatibility and stops rather than generating GitHub-specific files.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
同一个仓库里的其他技能
- claude-code-plugin-reference
- night-market-architecture-contract
- night-market-build-and-env
- night-market-change-control
- night-market-collective-memory
- night-market-completion-integrity-campaign
- night-market-config-catalog
- night-market-debugging-playbook
- night-market-diagnostics-toolkit
- night-market-docs-and-writing
- night-market-failure-archaeology
- night-market-model-and-harness-updates