diff --git a/.github/workflows/validate-agentic-workflows.yml b/.github/workflows/validate-agentic-workflows.yml new file mode 100644 index 00000000..7c8ab391 --- /dev/null +++ b/.github/workflows/validate-agentic-workflows.yml @@ -0,0 +1,73 @@ +name: Validate Agentic Workflows + +on: + pull_request: + branches: [staged] + types: [opened, synchronize, reopened] + paths: + - "workflows/**" + +permissions: + contents: read + pull-requests: write + +jobs: + validate-workflows: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install gh-aw CLI + uses: github/gh-aw/actions/setup-cli@main + + - name: Find and compile workflow files + id: compile + run: | + exit_code=0 + found=0 + + # Find all .md files in workflows/ subfolders (excluding README.md) + for workflow_file in workflows/*/*.md; do + [ -f "$workflow_file" ] || continue + basename=$(basename "$workflow_file") + [ "$basename" = "README.md" ] && continue + + found=$((found + 1)) + echo "::group::Compiling $workflow_file" + if gh aw compile --validate "$workflow_file"; then + echo "✅ $workflow_file compiled successfully" + else + echo "❌ $workflow_file failed to compile" + exit_code=1 + fi + echo "::endgroup::" + done + + if [ "$found" -eq 0 ]; then + echo "No workflow .md files found to validate (README.md files are excluded)." + else + echo "Validated $found workflow file(s)." + fi + + echo "status=$( [ $exit_code -eq 0 ] && echo success || echo failure )" >> "$GITHUB_OUTPUT" + exit $exit_code + + - name: Comment on PR if compilation failed + if: failure() + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: workflow-validation + message: | + ## ❌ Agentic Workflow compilation failed + + One or more workflow files in `workflows/` failed to compile with `gh aw compile --validate`. + + Please fix the errors and push again. You can test locally with: + + ```bash + gh extension install github/gh-aw + gh aw compile --validate .md + ``` + + See the [Agentic Workflows documentation](https://github.github.com/gh-aw) for help. diff --git a/.github/workflows/validate-readme.yml b/.github/workflows/validate-readme.yml index 6df185e3..e9ae9dfe 100644 --- a/.github/workflows/validate-readme.yml +++ b/.github/workflows/validate-readme.yml @@ -9,6 +9,7 @@ on: - "prompts/**" - "agents/**" - "plugins/**" + - "workflows/**" - "*.js" - "README.md" - "docs/**"