Skip to main content

workflow-setup

Configure GitHub Actions workflows for CI/CD (test, lint, typecheck, publish)

Zur Installation springen

Quellinformationen

Repository
RunnerQuan/SAFE-Agent
Letzte Quellaktivität
30. März 2026 um 04:33
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
workflow-setup
description
Configure GitHub Actions workflows for CI/CD (test, lint, typecheck, publish)
Triggers
github, actions, publish, configure, workflows
model
claude-sonnet-4
tools
["Read","Write","Bash"]
version
1.3.7
## Table of Contents - [Use When](#use-when) - [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. ## Use When - Need CI/CD for a new project - Adding missing workflows to existing project - Updating workflow versions to latest ## Standard Workflows ### Python Workflows 1. **test.yml** - Run pytest on push/PR 2. **lint.yml** - Run ruff linting 3. **typecheck.yml** - Run mypy type checking 4. **publish.yml** - Publish to PyPI on release ### Rust Workflows 1. **ci.yml** - Combined test/lint/check workflow 2. **release.yml** - Build and publish releases ### TypeScript Workflows 1. **test.yml** - Run Jest tests 2. **lint.yml** - Run ESLint 3. **build.yml** - Build for production 4. **deploy.yml** - Deploy to hosting (Vercel, Netlify, etc.) ## Workflow ### 1. Check Existing Workflows ```bash ls -la .github/workflows/ ``` **Verification:** Run the command with `--help` flag to verify availability. ### 2. Identify Missing Workflows ```python 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 ```python 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 ```bash # 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 ```yaml # 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) ```yaml 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 ```yaml - 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: ```yaml # 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: ```bash /attune:upgrade-project --component workflows ``` **Verification:** Run the command with `--help` flag to verify availability. ## Related Skills - `Skill(attune:project-init)` - Full project initialization - `Skill(sanctum:pr-prep)` - PR preparation with CI checks ## Troubleshooting ### Common Issues **Command not found** Ensure all dependencies are installed and in PATH **Permission errors** Check file permissions and run with appropriate privileges **Unexpected behavior** Enable verbose logging with `--verbose` flag
Auf GitHub ansehen