Install
openclaw skills install nm-attune-workflow-setupConfigures GitHub Actions CI/CD workflows for testing, linting, and deployment
openclaw skills install nm-attune-workflow-setupNight Market Skill — ported from claude-night-market/attune. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Set up GitHub Actions workflows for continuous integration and deployment.
/attune:upgrade-project instead for updating existing workflowsls -la .github/workflows/
Verification: Run the command with --help flag to verify availability.
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.
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.
# 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.
# 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.
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.
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip' # Cache pip dependencies
Verification: Run python --version to verify Python environment.
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.
To update workflows to latest versions:
/attune:upgrade-project --component workflows
Verification: Run the command with --help flag to verify availability.
Skill(attune:project-init) - Full project initializationSkill(sanctum:pr-prep) - PR preparation with CI checks