@hybridlabor-api/aos 4.8.0 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/{agents.md → AGENTS.md} +3 -1
- package/.agents/nodes.json +3 -1
- package/.agents/vendor-manifest.json +23 -1
- package/.claude/agents/godmode-media-eventtech.md +1 -1
- package/.claude/hooks/conventional-commits.mjs +125 -0
- package/.claude/hooks/env-file-protection.mjs +105 -0
- package/.claude/hooks/go-gate.mjs +101 -81
- package/.claude/hooks/memb-inject.mjs +29 -1
- package/.claude/settings.json +13 -0
- package/.claude/workflows/startcycle-dispatch.mjs +23 -1
- package/.opencode/agents/godmode-media-eventtech.md +1 -1
- package/.opencode/plugins/bdb-aos.js +31 -4
- package/CLAUDE.md +0 -571
- package/README.de.md +1 -1
- package/README.md +1 -1
- package/README.pt.md +1 -1
- package/THIRD_PARTY_NOTICES.md +126 -0
- package/bin/aos-doctor.mjs +1 -1
- package/docs/skills_table.md +1 -1
- package/installer.js +187 -55
- package/package.json +7 -3
- package/packages/aos-cli/README.md +80 -0
- package/packages/aos-cli/bin/aos-cli.mjs +134 -0
- package/packages/aos-cli/core-skills.json +12 -0
- package/packages/aos-cli/extensions/aos.ts +321 -0
- package/packages/aos-cli/package-lock.json +1923 -0
- package/packages/aos-cli/package.json +29 -0
- package/packages/aos-cli/scripts/check-theme.mjs +63 -0
- package/packages/aos-cli/themes/aos.json +97 -0
- package/scripts/build-plugin-manifest.mjs +131 -0
- package/scripts/validate-skills.mjs +81 -6
- package/skills/basic/ao-orchestrator/SKILL.md +116 -0
- package/skills/basic/bdb-eventagency-skill/SKILL.md +252 -0
- package/skills/basic/bdb-shipping-skill/SKILL.md +161 -0
- package/skills/basic/godmode-eventtech/SKILL.md +4 -1
- package/skills/global_config/agenttrail/SKILL.md +6 -1
- package/skills/global_config/aos-project-init/SKILL.md +2 -0
- package/skills/global_config/aos-project-init/assets/AGENTS.template.md +1 -1
- package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +1 -1
- package/skills/global_config/aos-setup/SKILL.md +1 -1
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +1 -1
- package/skills/global_config/ask-tim/SKILL.md +7 -7
- package/skills/global_config/bash-script-generator/SKILL.md +201 -0
- package/skills/global_config/bash-script-generator/assets/templates/standard-template.sh +96 -0
- package/skills/global_config/bash-script-generator/docs/bash-scripting-guide.md +729 -0
- package/skills/global_config/bash-script-generator/docs/generation-best-practices.md +193 -0
- package/skills/global_config/bash-script-generator/docs/script-patterns.md +566 -0
- package/skills/global_config/bash-script-generator/docs/text-processing-guide.md +437 -0
- package/skills/global_config/bash-script-generator/examples/log-analyzer.sh +92 -0
- package/skills/global_config/bash-script-generator/scripts/generate_script_template.sh +123 -0
- package/skills/global_config/bash-script-generator/scripts/run_ci_checks.sh +172 -0
- package/skills/global_config/bash-script-generator/scripts/test_generator.sh +413 -0
- package/skills/global_config/bash-script-validator/SKILL.md +249 -0
- package/skills/global_config/bash-script-validator/docs/awk-reference.md +449 -0
- package/skills/global_config/bash-script-validator/docs/bash-reference.md +468 -0
- package/skills/global_config/bash-script-validator/docs/common-mistakes.md +623 -0
- package/skills/global_config/bash-script-validator/docs/grep-reference.md +395 -0
- package/skills/global_config/bash-script-validator/docs/regex-reference.md +391 -0
- package/skills/global_config/bash-script-validator/docs/sed-reference.md +454 -0
- package/skills/global_config/bash-script-validator/docs/shell-reference.md +463 -0
- package/skills/global_config/bash-script-validator/docs/shellcheck-reference.md +399 -0
- package/skills/global_config/bash-script-validator/examples/bad-bash.sh +55 -0
- package/skills/global_config/bash-script-validator/examples/bad-shell.sh +54 -0
- package/skills/global_config/bash-script-validator/examples/good-bash.sh +71 -0
- package/skills/global_config/bash-script-validator/examples/good-shell.sh +69 -0
- package/skills/global_config/bash-script-validator/scripts/run_ci_checks.sh +23 -0
- package/skills/global_config/bash-script-validator/scripts/shellcheck_wrapper.sh +174 -0
- package/skills/global_config/bash-script-validator/scripts/test_validate.sh +446 -0
- package/skills/global_config/bash-script-validator/scripts/validate.sh +512 -0
- package/skills/global_config/ci-pipeline/SKILL.md +135 -0
- package/skills/global_config/deja-memory/SKILL.md +3 -1
- package/skills/global_config/dispatching-parallel-agents/SKILL.md +170 -0
- package/skills/global_config/dockerfile-generator/SKILL.md +1038 -0
- package/skills/global_config/dockerfile-generator/examples/example.dockerignore +95 -0
- package/skills/global_config/dockerfile-generator/examples/golang-distroless.Dockerfile +34 -0
- package/skills/global_config/dockerfile-generator/examples/java-springboot.Dockerfile +45 -0
- package/skills/global_config/dockerfile-generator/examples/nextjs-production.Dockerfile +49 -0
- package/skills/global_config/dockerfile-generator/examples/nodejs-multistage.Dockerfile +55 -0
- package/skills/global_config/dockerfile-generator/examples/python-fastapi.Dockerfile +48 -0
- package/skills/global_config/dockerfile-generator/references/language_specific_guides.md +510 -0
- package/skills/global_config/dockerfile-generator/references/multistage_builds.md +570 -0
- package/skills/global_config/dockerfile-generator/references/optimization_patterns.md +492 -0
- package/skills/global_config/dockerfile-generator/references/security_best_practices.md +375 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_dockerignore.sh +199 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_golang.sh +172 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_java.sh +185 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_nodejs.sh +279 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_python.sh +218 -0
- package/skills/global_config/dockerfile-generator/scripts/test_generator.sh +210 -0
- package/skills/global_config/dockerfile-validator/SKILL.md +300 -0
- package/skills/global_config/dockerfile-validator/examples/.dockerignore.example +34 -0
- package/skills/global_config/dockerfile-validator/examples/bad-example.Dockerfile +37 -0
- package/skills/global_config/dockerfile-validator/examples/golang-distroless.Dockerfile +50 -0
- package/skills/global_config/dockerfile-validator/examples/good-example.Dockerfile +52 -0
- package/skills/global_config/dockerfile-validator/examples/python-optimized.Dockerfile +53 -0
- package/skills/global_config/dockerfile-validator/examples/security-issues.Dockerfile +42 -0
- package/skills/global_config/dockerfile-validator/references/docker_best_practices.md +348 -0
- package/skills/global_config/dockerfile-validator/references/optimization_guide.md +473 -0
- package/skills/global_config/dockerfile-validator/references/security_checklist.md +208 -0
- package/skills/global_config/dockerfile-validator/scripts/dockerfile-validate.sh +699 -0
- package/skills/global_config/dockerfile-validator/scripts/test_validate.sh +35 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn-lock-read.Dockerfile +6 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn.Dockerfile +6 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/from-platform-nonroot.Dockerfile +7 -0
- package/skills/global_config/dockerfile-validator/tests/test_regression.sh +164 -0
- package/skills/global_config/finishing-a-development-branch/SKILL.md +228 -0
- package/skills/global_config/github-actions-generator/SKILL.md +353 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/composite/action.yml +82 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/Dockerfile +25 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/action.yml +42 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/entrypoint.sh +27 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/action.yml +33 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/index.js +50 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/package.json +27 -0
- package/skills/global_config/github-actions-generator/assets/templates/workflow/basic_workflow.yml +242 -0
- package/skills/global_config/github-actions-generator/assets/templates/workflow/reusable_workflow.yml +106 -0
- package/skills/global_config/github-actions-generator/examples/README.md +147 -0
- package/skills/global_config/github-actions-generator/examples/actions/setup-node-cached/action.yml +93 -0
- package/skills/global_config/github-actions-generator/examples/caching/docker-buildkit.yml +256 -0
- package/skills/global_config/github-actions-generator/examples/security/dependency-review.yml +62 -0
- package/skills/global_config/github-actions-generator/examples/security/sbom-attestation.yml +119 -0
- package/skills/global_config/github-actions-generator/examples/triggers/chatops-commands.yml +475 -0
- package/skills/global_config/github-actions-generator/examples/triggers/repository-dispatch.yml +418 -0
- package/skills/global_config/github-actions-generator/examples/triggers/workflow-orchestration.yml +404 -0
- package/skills/global_config/github-actions-generator/examples/workflows/docker-build-push.yml +68 -0
- package/skills/global_config/github-actions-generator/examples/workflows/go-ci.yml +161 -0
- package/skills/global_config/github-actions-generator/examples/workflows/monorepo-ci.yml +340 -0
- package/skills/global_config/github-actions-generator/examples/workflows/multi-environment-deploy.yml +406 -0
- package/skills/global_config/github-actions-generator/examples/workflows/nodejs-ci.yml +122 -0
- package/skills/global_config/github-actions-generator/examples/workflows/python-ci.yml +157 -0
- package/skills/global_config/github-actions-generator/examples/workflows/scheduled-tasks.yml +376 -0
- package/skills/global_config/github-actions-generator/references/advanced-triggers.md +917 -0
- package/skills/global_config/github-actions-generator/references/best-practices.md +755 -0
- package/skills/global_config/github-actions-generator/references/common-actions.md +715 -0
- package/skills/global_config/github-actions-generator/references/custom-actions.md +320 -0
- package/skills/global_config/github-actions-generator/references/expressions-and-contexts.md +688 -0
- package/skills/global_config/github-actions-generator/references/modern-features.md +421 -0
- package/skills/global_config/github-actions-generator/scripts/test_generator.sh +344 -0
- package/skills/global_config/github-actions-templates/SKILL.md +7 -0
- package/skills/global_config/github-actions-validator/SKILL.md +576 -0
- package/skills/global_config/github-actions-validator/examples/README.md +88 -0
- package/skills/global_config/github-actions-validator/examples/outdated-versions.yml +76 -0
- package/skills/global_config/github-actions-validator/examples/valid-ci.yml +79 -0
- package/skills/global_config/github-actions-validator/examples/with-errors.yml +47 -0
- package/skills/global_config/github-actions-validator/references/act_usage.md +233 -0
- package/skills/global_config/github-actions-validator/references/action_versions.md +122 -0
- package/skills/global_config/github-actions-validator/references/actionlint_usage.md +343 -0
- package/skills/global_config/github-actions-validator/references/common_errors.md +512 -0
- package/skills/global_config/github-actions-validator/references/modern_features.md +384 -0
- package/skills/global_config/github-actions-validator/references/runners.md +317 -0
- package/skills/global_config/github-actions-validator/scripts/install_tools.sh +113 -0
- package/skills/global_config/github-actions-validator/scripts/validate_workflow.sh +910 -0
- package/skills/global_config/github-actions-validator/tests/test_validate_workflow.sh +237 -0
- package/skills/global_config/makefile-generator/SKILL.md +614 -0
- package/skills/global_config/makefile-generator/assets/templates/.gitkeep +1 -0
- package/skills/global_config/makefile-generator/docs/makefile-structure.md +530 -0
- package/skills/global_config/makefile-generator/docs/optimization-guide.md +784 -0
- package/skills/global_config/makefile-generator/docs/patterns-guide.md +642 -0
- package/skills/global_config/makefile-generator/docs/security-guide.md +361 -0
- package/skills/global_config/makefile-generator/docs/targets-guide.md +642 -0
- package/skills/global_config/makefile-generator/docs/variables-guide.md +596 -0
- package/skills/global_config/makefile-generator/scripts/add_standard_targets.sh +539 -0
- package/skills/global_config/makefile-generator/scripts/generate_makefile_template.sh +690 -0
- package/skills/global_config/makefile-generator/test/test_helper_scripts.sh +190 -0
- package/skills/global_config/makefile-validator/SKILL.md +244 -0
- package/skills/global_config/makefile-validator/docs/bake-tool.md +1000 -0
- package/skills/global_config/makefile-validator/docs/best-practices.md +858 -0
- package/skills/global_config/makefile-validator/docs/common-mistakes.md +944 -0
- package/skills/global_config/makefile-validator/examples/bad-makefile.mk +77 -0
- package/skills/global_config/makefile-validator/examples/good-makefile.mk +103 -0
- package/skills/global_config/makefile-validator/scripts/test_validate.sh +382 -0
- package/skills/global_config/makefile-validator/scripts/validate_makefile.sh +712 -0
- package/skills/global_config/{MCP_Manage → mcp-manage}/SKILL.md +3 -3
- package/skills/global_config/plan-canvas/SKILL.md +9 -2
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/ui.js +10 -2
- package/skills/global_config/plan-canvas/scripts/plan-canvas.js +1 -1
- package/skills/global_config/read-the-damn-docs/SKILL.md +175 -0
- package/skills/global_config/requesting-code-review/SKILL.md +98 -0
- package/skills/global_config/requesting-code-review/code-reviewer.md +198 -0
- package/skills/global_config/using-git-worktrees/SKILL.md +170 -0
- package/skills/global_config/verification-before-completion/SKILL.md +123 -0
- package/skills/global_config/writing-plans/SKILL.md +126 -46
- package/skills/global_config/writing-plans-legacy/SKILL.md +152 -0
- package/.claude/CLAUDE.md +0 -12
- package/mcps/RhinoMCP/docs/content/docs/getting-started/gemini.md +0 -61
- /package/{GEMINI.md → RULES.md} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Example: Workflow with Outdated Action Versions
|
|
2
|
+
# This workflow uses older action versions for testing version validation
|
|
3
|
+
# Use for testing version checks: bash scripts/validate_workflow.sh --check-versions examples/outdated-versions.yml
|
|
4
|
+
#
|
|
5
|
+
# VERSION ISSUES IN THIS FILE:
|
|
6
|
+
# 1. actions/checkout@v4 - OUTDATED (current: v6)
|
|
7
|
+
# 2. actions/setup-node@v4 - OUTDATED (current: v6)
|
|
8
|
+
# 3. actions/upload-artifact@v3 - DEPRECATED (minimum: v4)
|
|
9
|
+
# 4. docker/build-push-action@v5 - OUTDATED (current: v6)
|
|
10
|
+
|
|
11
|
+
name: Workflow with Outdated Versions
|
|
12
|
+
|
|
13
|
+
on:
|
|
14
|
+
push:
|
|
15
|
+
branches: [main]
|
|
16
|
+
workflow_dispatch:
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
packages: write
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
build:
|
|
24
|
+
name: Build Application
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
# OUTDATED: Using v4, current is v6
|
|
29
|
+
- name: Checkout code
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
# OUTDATED: Using v4, current is v6
|
|
33
|
+
- name: Setup Node.js
|
|
34
|
+
uses: actions/setup-node@v4
|
|
35
|
+
with:
|
|
36
|
+
node-version: '20'
|
|
37
|
+
cache: 'npm'
|
|
38
|
+
|
|
39
|
+
- name: Install and build
|
|
40
|
+
run: |
|
|
41
|
+
npm ci
|
|
42
|
+
npm run build
|
|
43
|
+
|
|
44
|
+
# DEPRECATED: Using v3, minimum supported is v4
|
|
45
|
+
- name: Upload artifacts
|
|
46
|
+
uses: actions/upload-artifact@v3
|
|
47
|
+
with:
|
|
48
|
+
name: build-output
|
|
49
|
+
path: dist/
|
|
50
|
+
|
|
51
|
+
docker:
|
|
52
|
+
name: Build Docker Image
|
|
53
|
+
runs-on: ubuntu-latest
|
|
54
|
+
needs: build
|
|
55
|
+
|
|
56
|
+
steps:
|
|
57
|
+
- name: Checkout
|
|
58
|
+
uses: actions/checkout@v4
|
|
59
|
+
|
|
60
|
+
- name: Set up Docker Buildx
|
|
61
|
+
uses: docker/setup-buildx-action@v3
|
|
62
|
+
|
|
63
|
+
- name: Login to registry
|
|
64
|
+
uses: docker/login-action@v3
|
|
65
|
+
with:
|
|
66
|
+
registry: ghcr.io
|
|
67
|
+
username: ${{ github.actor }}
|
|
68
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
69
|
+
|
|
70
|
+
# OUTDATED: Using v5, current is v6
|
|
71
|
+
- name: Build and push
|
|
72
|
+
uses: docker/build-push-action@v5
|
|
73
|
+
with:
|
|
74
|
+
context: .
|
|
75
|
+
push: true
|
|
76
|
+
tags: ghcr.io/${{ github.repository }}:latest
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Example: Valid CI Workflow
|
|
2
|
+
# This workflow passes all validation checks
|
|
3
|
+
# Use for testing successful validation: bash scripts/validate_workflow.sh examples/valid-ci.yml
|
|
4
|
+
|
|
5
|
+
name: Valid CI Pipeline
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [main, develop]
|
|
10
|
+
pull_request:
|
|
11
|
+
branches: [main]
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
concurrency:
|
|
18
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
19
|
+
cancel-in-progress: true
|
|
20
|
+
|
|
21
|
+
env:
|
|
22
|
+
NODE_VERSION: '20'
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
build:
|
|
26
|
+
name: Build and Test
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- name: Checkout code
|
|
31
|
+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
32
|
+
|
|
33
|
+
- name: Setup Node.js
|
|
34
|
+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
|
35
|
+
with:
|
|
36
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
37
|
+
cache: 'npm'
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: npm ci
|
|
41
|
+
|
|
42
|
+
- name: Run linter
|
|
43
|
+
run: npm run lint
|
|
44
|
+
|
|
45
|
+
- name: Run tests
|
|
46
|
+
run: npm test
|
|
47
|
+
|
|
48
|
+
- name: Build application
|
|
49
|
+
run: npm run build
|
|
50
|
+
|
|
51
|
+
- name: Upload build artifacts
|
|
52
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
53
|
+
with:
|
|
54
|
+
name: build-output
|
|
55
|
+
path: dist/
|
|
56
|
+
retention-days: 7
|
|
57
|
+
|
|
58
|
+
security-scan:
|
|
59
|
+
name: Security Scan
|
|
60
|
+
runs-on: ubuntu-latest
|
|
61
|
+
needs: build
|
|
62
|
+
|
|
63
|
+
permissions:
|
|
64
|
+
contents: read
|
|
65
|
+
security-events: write
|
|
66
|
+
|
|
67
|
+
steps:
|
|
68
|
+
- name: Checkout code
|
|
69
|
+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
70
|
+
|
|
71
|
+
- name: Run security scan
|
|
72
|
+
run: |
|
|
73
|
+
echo "Running security scan..."
|
|
74
|
+
# Security scan commands here
|
|
75
|
+
|
|
76
|
+
- name: Generate summary
|
|
77
|
+
run: |
|
|
78
|
+
echo "## Security Scan Results" >> $GITHUB_STEP_SUMMARY
|
|
79
|
+
echo "All checks passed!" >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Example: Workflow with Intentional Errors
|
|
2
|
+
# This workflow contains common errors for testing validation
|
|
3
|
+
# Use for testing error detection: bash scripts/validate_workflow.sh --lint-only examples/with-errors.yml
|
|
4
|
+
#
|
|
5
|
+
# ERRORS IN THIS FILE (4 total, all caught by actionlint):
|
|
6
|
+
# 1. Line 18: Invalid CRON expression (day 8 doesn't exist) [events]
|
|
7
|
+
# 2. Line 25: Typo in runner label (ubuntu-lastest) [runner-label]
|
|
8
|
+
# 3. Line 37: Script injection vulnerability [expression]
|
|
9
|
+
# 4. Line 43: Undefined job dependency (biuld instead of build) [job-needs]
|
|
10
|
+
|
|
11
|
+
name: Workflow with Errors
|
|
12
|
+
|
|
13
|
+
on:
|
|
14
|
+
push:
|
|
15
|
+
branches: [main]
|
|
16
|
+
schedule:
|
|
17
|
+
# ERROR: Invalid CRON - day of week 8 doesn't exist (should be 0-6)
|
|
18
|
+
- cron: '0 0 * * 8'
|
|
19
|
+
pull_request:
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
build:
|
|
23
|
+
name: Build
|
|
24
|
+
# ERROR: Typo in runner label (should be ubuntu-latest)
|
|
25
|
+
runs-on: ubuntu-lastest
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
|
|
31
|
+
- name: Build
|
|
32
|
+
run: npm run build
|
|
33
|
+
|
|
34
|
+
# ERROR: Script injection vulnerability - untrusted input directly in script
|
|
35
|
+
- name: Process issue
|
|
36
|
+
run: |
|
|
37
|
+
echo "Processing: ${{ github.event.issue.title }}"
|
|
38
|
+
|
|
39
|
+
deploy:
|
|
40
|
+
name: Deploy
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
# ERROR: Undefined job dependency (typo: biuld instead of build)
|
|
43
|
+
needs: biuld
|
|
44
|
+
|
|
45
|
+
steps:
|
|
46
|
+
- name: Deploy
|
|
47
|
+
run: echo "Deploying..."
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Act (nektos/act) - Usage Reference
|
|
2
|
+
|
|
3
|
+
Act is a tool that allows you to run your GitHub Actions locally, providing fast feedback and acting as a local task runner.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install act using the official script
|
|
9
|
+
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | bash
|
|
10
|
+
|
|
11
|
+
# Or use the skill's installation script
|
|
12
|
+
bash scripts/install_tools.sh
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Core Commands
|
|
16
|
+
|
|
17
|
+
### List Workflows
|
|
18
|
+
|
|
19
|
+
List all available workflows in the repository:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
act -l
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
List workflows for a specific event:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
act -l pull_request
|
|
29
|
+
act -l push
|
|
30
|
+
act -l workflow_dispatch
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Dry Run (No Execution)
|
|
34
|
+
|
|
35
|
+
Validate workflows without executing them, useful for inspection and validation:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
act -n
|
|
39
|
+
# or (long form)
|
|
40
|
+
act --dryrun
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This performs a dry run that:
|
|
44
|
+
- Parses all workflow files
|
|
45
|
+
- Validates syntax
|
|
46
|
+
- Shows what would be executed
|
|
47
|
+
- Does NOT actually run any jobs
|
|
48
|
+
- Returns exit code 0 on success, non-zero on errors
|
|
49
|
+
|
|
50
|
+
**Important for Validation:** The dry-run mode is perfect for validating workflow syntax before pushing to GitHub.
|
|
51
|
+
|
|
52
|
+
### Run Workflows
|
|
53
|
+
|
|
54
|
+
Run the default workflow:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
act
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Run workflows for a specific event:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
act push
|
|
64
|
+
act pull_request
|
|
65
|
+
act workflow_dispatch
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Run a specific job:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
act -j <job-id>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Run a specific workflow file:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
act -W .github/workflows/ci.yml
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Common Use Cases
|
|
81
|
+
|
|
82
|
+
### 1. Validate Workflow Syntax
|
|
83
|
+
|
|
84
|
+
Use dry run to check if workflows parse correctly:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
act -n
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If there are syntax errors, act will report them immediately.
|
|
91
|
+
|
|
92
|
+
### 2. Test Workflows Locally
|
|
93
|
+
|
|
94
|
+
Before pushing to GitHub, test workflows locally:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Test push event workflows
|
|
98
|
+
act push
|
|
99
|
+
|
|
100
|
+
# Test pull request workflows
|
|
101
|
+
act pull_request
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3. Debug Workflow Issues
|
|
105
|
+
|
|
106
|
+
Run workflows with verbose output:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
act -v
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 4. List Available Events
|
|
113
|
+
|
|
114
|
+
See which events have workflows configured:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
act -l
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Output format:
|
|
121
|
+
```
|
|
122
|
+
Stage Job ID Job name Workflow name Workflow file Events
|
|
123
|
+
0 build build CI ci.yml push,pull_request
|
|
124
|
+
0 test test CI ci.yml push,pull_request
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Advanced Options
|
|
128
|
+
|
|
129
|
+
### Container Architecture
|
|
130
|
+
|
|
131
|
+
Ensure consistent platform behavior across different machines:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
act --container-architecture linux/amd64
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
This is especially important on ARM-based Macs (M1/M2/M3) to ensure workflows run in the same environment as GitHub's x64 runners.
|
|
138
|
+
|
|
139
|
+
### Using Specific Docker Images
|
|
140
|
+
|
|
141
|
+
Act uses Docker containers to run jobs. Specify custom images:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
act -P ubuntu-latest=node:16-buster
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Configuration File
|
|
148
|
+
|
|
149
|
+
Create `.actrc` file in your project or home directory to set default options:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# .actrc
|
|
153
|
+
--container-architecture=linux/amd64
|
|
154
|
+
--action-offline-mode
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Options are loaded in this order:
|
|
158
|
+
1. XDG spec `.actrc`
|
|
159
|
+
2. HOME directory `.actrc`
|
|
160
|
+
3. Current directory `.actrc`
|
|
161
|
+
4. CLI arguments
|
|
162
|
+
|
|
163
|
+
### Passing Secrets
|
|
164
|
+
|
|
165
|
+
Provide secrets for testing:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
act -s GITHUB_TOKEN=ghp_xxx
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Or use a secrets file:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
act --secret-file .secrets
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Environment Variables
|
|
178
|
+
|
|
179
|
+
Set environment variables:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
act --env MY_VAR=value
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Input Variables (for workflow_dispatch)
|
|
186
|
+
|
|
187
|
+
Pass input variables:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
act workflow_dispatch --input myInput=myValue
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Limitations
|
|
194
|
+
|
|
195
|
+
Be aware of act's limitations:
|
|
196
|
+
|
|
197
|
+
1. **Not 100% Compatible**: Some GitHub Actions features may not work exactly as on GitHub
|
|
198
|
+
2. **Docker Required**: act requires Docker to be installed and running
|
|
199
|
+
3. **Network Actions**: Some actions that interact with GitHub's API may fail
|
|
200
|
+
4. **Runner Images**: Default runner images may differ from GitHub's hosted runners
|
|
201
|
+
5. **Secrets**: Local testing requires manually providing secrets
|
|
202
|
+
|
|
203
|
+
## Exit Codes
|
|
204
|
+
|
|
205
|
+
- `0`: Success - all jobs passed
|
|
206
|
+
- `1`: Failure - at least one job failed
|
|
207
|
+
- `2`: Error - workflow parsing or execution error
|
|
208
|
+
|
|
209
|
+
## Best Practices for Validation
|
|
210
|
+
|
|
211
|
+
1. **Always run dry-run first**: `act -n` to catch syntax errors
|
|
212
|
+
2. **Test specific events**: Don't run all workflows, target the event you care about
|
|
213
|
+
3. **Use verbose mode for debugging**: `act -v` when troubleshooting
|
|
214
|
+
4. **Check Docker availability**: Ensure Docker is running before using act
|
|
215
|
+
5. **Consider limitations**: Not all features work locally - use for syntax and basic logic validation
|
|
216
|
+
|
|
217
|
+
## Troubleshooting
|
|
218
|
+
|
|
219
|
+
### Issue: "Cannot connect to Docker daemon"
|
|
220
|
+
|
|
221
|
+
**Solution**: Start Docker Desktop or Docker daemon
|
|
222
|
+
|
|
223
|
+
### Issue: "Workflow file not found"
|
|
224
|
+
|
|
225
|
+
**Solution**: Ensure you're in the repository root or use `-W` to specify the workflow file path
|
|
226
|
+
|
|
227
|
+
### Issue: "Action not found"
|
|
228
|
+
|
|
229
|
+
**Solution**: Some actions may not be available locally. Use `-P` to specify alternative Docker images or skip the problematic action for validation purposes
|
|
230
|
+
|
|
231
|
+
### Issue: "Out of disk space"
|
|
232
|
+
|
|
233
|
+
**Solution**: Clean up Docker images: `docker system prune -a`
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Action Version Validation Reference
|
|
2
|
+
|
|
3
|
+
This reference provides current recommended action versions and validation procedures for GitHub Actions workflows.
|
|
4
|
+
|
|
5
|
+
## Current Recommended Versions (December 2025)
|
|
6
|
+
|
|
7
|
+
| Action | Current Version | Minimum Supported | Notes |
|
|
8
|
+
|--------|----------------|-------------------|-------|
|
|
9
|
+
| `actions/checkout` | **v6** | v4 | v6 stores credentials in $RUNNER_TEMP |
|
|
10
|
+
| `actions/setup-node` | **v6** | v4 | v6 adds Node 24 support |
|
|
11
|
+
| `actions/setup-python` | **v5** | v4 | v5 adds Python 3.13 support |
|
|
12
|
+
| `actions/setup-java` | **v4** | v4 | Current latest |
|
|
13
|
+
| `actions/setup-go` | **v5** | v4 | v5 adds Go 1.23 support |
|
|
14
|
+
| `actions/cache` | **v4** | v4 | v4.2.0+ required as of Feb 2025 |
|
|
15
|
+
| `actions/upload-artifact` | **v4** | v4 | v3 deprecated |
|
|
16
|
+
| `actions/download-artifact` | **v4** | v4 | v3 deprecated |
|
|
17
|
+
| `docker/setup-buildx-action` | **v3** | v3 | Current latest |
|
|
18
|
+
| `docker/login-action` | **v3** | v3 | Current latest |
|
|
19
|
+
| `docker/build-push-action` | **v6** | v5 | v6 adds provenance attestation |
|
|
20
|
+
| `docker/metadata-action` | **v5** | v5 | Current latest |
|
|
21
|
+
| `aws-actions/configure-aws-credentials` | **v4** | v4 | OIDC support improved |
|
|
22
|
+
|
|
23
|
+
## Version Validation Process
|
|
24
|
+
|
|
25
|
+
### Step 1: Extract Action References
|
|
26
|
+
|
|
27
|
+
For each `uses:` statement in the workflow, extract:
|
|
28
|
+
- Action name (e.g., `actions/checkout`)
|
|
29
|
+
- Version (e.g., `v4`, `v4.1.1`, or SHA like `b4ffde65f46...`)
|
|
30
|
+
|
|
31
|
+
### Step 2: Compare Against Recommended Versions
|
|
32
|
+
|
|
33
|
+
For each action found:
|
|
34
|
+
1. Look up the action in the table above
|
|
35
|
+
2. Compare the workflow version against the **Current Version**
|
|
36
|
+
3. Flag if using a version older than **Minimum Supported**
|
|
37
|
+
|
|
38
|
+
### Step 3: Report Findings
|
|
39
|
+
|
|
40
|
+
Generate warnings for:
|
|
41
|
+
- **OUTDATED**: Action using older major version (e.g., checkout@v4 when v6 is current)
|
|
42
|
+
- **DEPRECATED**: Action using version below minimum supported
|
|
43
|
+
- **UP-TO-DATE**: Action using current or acceptable version
|
|
44
|
+
|
|
45
|
+
## Example Version Validation Output
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
=== Action Version Check ===
|
|
49
|
+
|
|
50
|
+
actions/checkout@v6.0.0 - UP-TO-DATE (current: v6)
|
|
51
|
+
actions/setup-java@v4.2.1 - UP-TO-DATE (current: v4)
|
|
52
|
+
docker/build-push-action@v5.3.0 - OUTDATED (current: v6, using: v5)
|
|
53
|
+
actions/upload-artifact@v3 - DEPRECATED (minimum: v4, using: v3)
|
|
54
|
+
|
|
55
|
+
Recommendation: Update docker/build-push-action to v6 for provenance attestation support
|
|
56
|
+
Recommendation: Update actions/upload-artifact to v4 (v3 is deprecated)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Using the Version Check Flag
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Check action versions in workflow
|
|
63
|
+
bash scripts/validate_workflow.sh --check-versions .github/workflows/ci.yml
|
|
64
|
+
|
|
65
|
+
# Full validation including version check
|
|
66
|
+
bash scripts/validate_workflow.sh .github/workflows/ci.yml
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Node.js Runtime Deprecation Timeline
|
|
70
|
+
|
|
71
|
+
GitHub Actions runtime requirements:
|
|
72
|
+
- **Node.js 12**: EOL April 2022 - Actions using this are deprecated
|
|
73
|
+
- **Node.js 16**: EOL September 2023 - Actions using this are deprecated
|
|
74
|
+
- **Node.js 20**: EOL April 2026 - Current runtime for most actions
|
|
75
|
+
- **Node.js 22/24**: Current LTS - Newer actions support these
|
|
76
|
+
|
|
77
|
+
## SHA Pinning Best Practice
|
|
78
|
+
|
|
79
|
+
For security, pin actions to specific commit SHAs:
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
# Recommended: SHA pinning with version comment
|
|
83
|
+
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
84
|
+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
|
85
|
+
|
|
86
|
+
# Acceptable: Major version tag
|
|
87
|
+
- uses: actions/checkout@v6
|
|
88
|
+
|
|
89
|
+
# Not recommended: Branch reference
|
|
90
|
+
- uses: actions/checkout@main
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Cache Storage Updates (November 2025)
|
|
94
|
+
|
|
95
|
+
GitHub Actions cache storage expanded beyond the 10 GB limit:
|
|
96
|
+
|
|
97
|
+
**New Features:**
|
|
98
|
+
- **Pay-as-you-go model**: Repositories can store more than 10 GB of cache data
|
|
99
|
+
- **Free tier**: All repositories continue to receive 10 GB at no additional cost
|
|
100
|
+
- **New management policies**:
|
|
101
|
+
- Cache size eviction limit (GB): Control maximum cache size
|
|
102
|
+
- Cache retention limit (days): Set how long caches are retained
|
|
103
|
+
|
|
104
|
+
**Pricing:**
|
|
105
|
+
- First 10 GB per repository: **FREE**
|
|
106
|
+
- Additional storage: Comparable to Git LFS and Codespaces storage
|
|
107
|
+
- Requires Pro, Team, or Enterprise account to exceed 10 GB limit
|
|
108
|
+
|
|
109
|
+
**Cache best practices:**
|
|
110
|
+
- Monitor cache usage in repository settings
|
|
111
|
+
- Configure eviction limits to control costs
|
|
112
|
+
- Use appropriate retention periods for your workflow
|
|
113
|
+
- Clean up old caches regularly
|
|
114
|
+
- Consider cache key strategies to avoid cache bloat
|
|
115
|
+
|
|
116
|
+
## Validation Checklist
|
|
117
|
+
|
|
118
|
+
When validating workflows, ALWAYS:
|
|
119
|
+
1. Run the validation script
|
|
120
|
+
2. Manually review `uses:` statements against the version table
|
|
121
|
+
3. Warn about any outdated or deprecated versions
|
|
122
|
+
4. Suggest specific upgrade paths with SHA pinning
|