@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,320 @@
|
|
|
1
|
+
# Custom GitHub Actions Guide
|
|
2
|
+
|
|
3
|
+
**Last Updated:** December 2025
|
|
4
|
+
|
|
5
|
+
This guide covers creating custom GitHub Actions: composite, Docker, and JavaScript actions with proper metadata, directory structure, and versioning.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
1. [Action Types](#action-types)
|
|
9
|
+
2. [Action Metadata](#action-metadata)
|
|
10
|
+
3. [Directory Structure](#directory-structure)
|
|
11
|
+
4. [Versioning](#versioning)
|
|
12
|
+
5. [Publishing to Marketplace](#publishing-to-marketplace)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Action Types
|
|
17
|
+
|
|
18
|
+
| Type | Runtime | Use Case | Performance |
|
|
19
|
+
|------|---------|----------|-------------|
|
|
20
|
+
| Composite | Shell/Actions | Combine multiple steps | Fast startup |
|
|
21
|
+
| Docker | Container | Custom environment/tools | Slower startup |
|
|
22
|
+
| JavaScript | Node.js | API interactions, complex logic | Fastest |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Action Metadata
|
|
27
|
+
|
|
28
|
+
### Branding
|
|
29
|
+
|
|
30
|
+
Add branding to make your action visually distinctive in GitHub Marketplace:
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
name: 'Setup Node.js with Cache'
|
|
34
|
+
description: 'Setup Node.js with automatic dependency caching'
|
|
35
|
+
author: 'Your Name or Organization'
|
|
36
|
+
|
|
37
|
+
branding:
|
|
38
|
+
icon: 'package' # Feather icon name
|
|
39
|
+
color: 'blue' # Available: white, yellow, blue, green, orange, red, purple, gray-dark
|
|
40
|
+
|
|
41
|
+
inputs:
|
|
42
|
+
node-version:
|
|
43
|
+
description: 'Node.js version to use'
|
|
44
|
+
required: true
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Available Icons:** See [Feather Icons](https://feathericons.com/) - e.g., `package`, `box`, `server`, `code`, `git-branch`, `shield`, `check-circle`
|
|
48
|
+
|
|
49
|
+
**Best Practices:**
|
|
50
|
+
- Choose icons that represent the action's purpose
|
|
51
|
+
- Use consistent branding across related actions
|
|
52
|
+
- Branding is required for GitHub Marketplace publishing
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Directory Structure
|
|
57
|
+
|
|
58
|
+
### Local Repository Actions
|
|
59
|
+
|
|
60
|
+
Use `.github/actions/` for actions within the same repository:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
repository-root/
|
|
64
|
+
├── .github/
|
|
65
|
+
│ ├── actions/ # Local custom actions
|
|
66
|
+
│ │ ├── setup-node-cached/ # Composite action
|
|
67
|
+
│ │ │ ├── action.yml
|
|
68
|
+
│ │ │ └── README.md
|
|
69
|
+
│ │ ├── terraform-validator/ # Docker action
|
|
70
|
+
│ │ │ ├── action.yml
|
|
71
|
+
│ │ │ ├── Dockerfile
|
|
72
|
+
│ │ │ ├── entrypoint.sh
|
|
73
|
+
│ │ │ └── README.md
|
|
74
|
+
│ │ └── label-pr/ # JavaScript action
|
|
75
|
+
│ │ ├── action.yml
|
|
76
|
+
│ │ ├── dist/
|
|
77
|
+
│ │ │ └── index.js # Compiled/bundled JS
|
|
78
|
+
│ │ ├── src/
|
|
79
|
+
│ │ │ └── index.ts # Source TypeScript
|
|
80
|
+
│ │ ├── package.json
|
|
81
|
+
│ │ └── README.md
|
|
82
|
+
│ └── workflows/
|
|
83
|
+
│ └── ci.yml
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Usage in Workflows:**
|
|
87
|
+
```yaml
|
|
88
|
+
steps:
|
|
89
|
+
# Local action (same repository)
|
|
90
|
+
- uses: ./.github/actions/setup-node-cached
|
|
91
|
+
with:
|
|
92
|
+
node-version: '20'
|
|
93
|
+
|
|
94
|
+
# Action from another repository
|
|
95
|
+
- uses: owner/repo/.github/actions/action-name@v1
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Standalone Action Repositories
|
|
99
|
+
|
|
100
|
+
For actions intended for GitHub Marketplace or cross-repo reuse:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
action-repository-root/
|
|
104
|
+
├── action.yml # Action definition (MUST be in root)
|
|
105
|
+
├── README.md # Usage documentation
|
|
106
|
+
├── LICENSE # License file
|
|
107
|
+
├── CHANGELOG.md # Version history
|
|
108
|
+
├── dist/ # Compiled code (JS actions)
|
|
109
|
+
│ └── index.js
|
|
110
|
+
├── src/ # Source code (JS actions)
|
|
111
|
+
│ └── index.ts
|
|
112
|
+
└── Dockerfile # For Docker actions
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Best Practices:**
|
|
116
|
+
- Use `.github/actions/` for repository-local actions
|
|
117
|
+
- Create separate repos for reusable/Marketplace actions
|
|
118
|
+
- Always include README.md with usage examples
|
|
119
|
+
- For JS actions, commit compiled `dist/` (don't gitignore)
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Versioning
|
|
124
|
+
|
|
125
|
+
### Semantic Versioning
|
|
126
|
+
|
|
127
|
+
Use MAJOR.MINOR.PATCH format:
|
|
128
|
+
- **MAJOR:** Breaking changes
|
|
129
|
+
- **MINOR:** New features (backward compatible)
|
|
130
|
+
- **PATCH:** Bug fixes
|
|
131
|
+
|
|
132
|
+
### Git Tags
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Create version tag
|
|
136
|
+
git tag -a v1.0.0 -m "Release version 1.0.0"
|
|
137
|
+
git push origin v1.0.0
|
|
138
|
+
|
|
139
|
+
# Update major version tag (v1 → latest v1.x.x)
|
|
140
|
+
git tag -fa v1 -m "Update v1 to v1.0.0"
|
|
141
|
+
git push origin v1 --force
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Tag Strategy
|
|
145
|
+
|
|
146
|
+
Maintain multiple tag levels:
|
|
147
|
+
- **Specific:** `v1.0.0`, `v1.0.1`, `v1.1.0`
|
|
148
|
+
- **Major:** `v1`, `v2` (points to latest minor/patch)
|
|
149
|
+
|
|
150
|
+
**User options:**
|
|
151
|
+
```yaml
|
|
152
|
+
- uses: owner/action@v1.0.0 # Pinned to exact version
|
|
153
|
+
- uses: owner/action@v1 # Latest v1.x.x
|
|
154
|
+
- uses: owner/action@abc123 # Pinned to SHA (most secure)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Release Workflow
|
|
158
|
+
|
|
159
|
+
```yaml
|
|
160
|
+
# .github/workflows/release.yml
|
|
161
|
+
name: Release
|
|
162
|
+
|
|
163
|
+
on:
|
|
164
|
+
push:
|
|
165
|
+
tags: ['v*']
|
|
166
|
+
|
|
167
|
+
permissions:
|
|
168
|
+
contents: write
|
|
169
|
+
|
|
170
|
+
jobs:
|
|
171
|
+
release:
|
|
172
|
+
runs-on: ubuntu-latest
|
|
173
|
+
steps:
|
|
174
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
175
|
+
|
|
176
|
+
- name: Create GitHub Release
|
|
177
|
+
run: gh release create ${{ github.ref_name }} --generate-notes
|
|
178
|
+
env:
|
|
179
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
180
|
+
|
|
181
|
+
- name: Update major version tag
|
|
182
|
+
run: |
|
|
183
|
+
MAJOR=$(echo ${{ github.ref_name }} | cut -d. -f1)
|
|
184
|
+
git tag -fa $MAJOR -m "Update $MAJOR tag"
|
|
185
|
+
git push origin $MAJOR --force
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Breaking Changes
|
|
189
|
+
|
|
190
|
+
When introducing breaking changes:
|
|
191
|
+
1. Document in CHANGELOG.md and release notes
|
|
192
|
+
2. Increment MAJOR version
|
|
193
|
+
3. Provide migration guide
|
|
194
|
+
4. Consider maintaining previous major version branch
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Publishing to Marketplace
|
|
199
|
+
|
|
200
|
+
### Requirements
|
|
201
|
+
|
|
202
|
+
1. **Repository must be public**
|
|
203
|
+
2. **action.yml in repository root**
|
|
204
|
+
3. **Branding metadata** (icon and color)
|
|
205
|
+
4. **README.md** with usage examples
|
|
206
|
+
5. **Semantic version tags**
|
|
207
|
+
|
|
208
|
+
### Marketplace Listing
|
|
209
|
+
|
|
210
|
+
1. Go to repository Settings → Actions → "Create Action"
|
|
211
|
+
2. Or visit: `https://github.com/marketplace/actions/your-action`
|
|
212
|
+
3. Fill in marketplace details
|
|
213
|
+
4. Submit for review
|
|
214
|
+
|
|
215
|
+
### Pre-release Testing
|
|
216
|
+
|
|
217
|
+
Use pre-release versions for testing:
|
|
218
|
+
```bash
|
|
219
|
+
git tag -a v1.0.0-beta.1 -m "Beta release"
|
|
220
|
+
git push origin v1.0.0-beta.1
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Action Templates
|
|
226
|
+
|
|
227
|
+
### Composite Action Template
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
name: '[Action Name]'
|
|
231
|
+
description: '[Brief description]'
|
|
232
|
+
author: '[Author]'
|
|
233
|
+
|
|
234
|
+
branding:
|
|
235
|
+
icon: 'check-circle'
|
|
236
|
+
color: 'green'
|
|
237
|
+
|
|
238
|
+
inputs:
|
|
239
|
+
input-name:
|
|
240
|
+
description: '[Description]'
|
|
241
|
+
required: true
|
|
242
|
+
default: '[default value]'
|
|
243
|
+
|
|
244
|
+
outputs:
|
|
245
|
+
output-name:
|
|
246
|
+
description: '[Description]'
|
|
247
|
+
value: ${{ steps.step-id.outputs.value }}
|
|
248
|
+
|
|
249
|
+
runs:
|
|
250
|
+
using: 'composite'
|
|
251
|
+
steps:
|
|
252
|
+
- name: Step name
|
|
253
|
+
id: step-id
|
|
254
|
+
shell: bash
|
|
255
|
+
run: echo "value=result" >> $GITHUB_OUTPUT
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Docker Action Template
|
|
259
|
+
|
|
260
|
+
```yaml
|
|
261
|
+
name: '[Action Name]'
|
|
262
|
+
description: '[Brief description]'
|
|
263
|
+
author: '[Author]'
|
|
264
|
+
|
|
265
|
+
branding:
|
|
266
|
+
icon: 'box'
|
|
267
|
+
color: 'blue'
|
|
268
|
+
|
|
269
|
+
inputs:
|
|
270
|
+
input-name:
|
|
271
|
+
description: '[Description]'
|
|
272
|
+
required: true
|
|
273
|
+
|
|
274
|
+
outputs:
|
|
275
|
+
output-name:
|
|
276
|
+
description: '[Description]'
|
|
277
|
+
|
|
278
|
+
runs:
|
|
279
|
+
using: 'docker'
|
|
280
|
+
image: 'Dockerfile'
|
|
281
|
+
args:
|
|
282
|
+
- ${{ inputs.input-name }}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### JavaScript Action Template
|
|
286
|
+
|
|
287
|
+
```yaml
|
|
288
|
+
name: '[Action Name]'
|
|
289
|
+
description: '[Brief description]'
|
|
290
|
+
author: '[Author]'
|
|
291
|
+
|
|
292
|
+
branding:
|
|
293
|
+
icon: 'code'
|
|
294
|
+
color: 'purple'
|
|
295
|
+
|
|
296
|
+
inputs:
|
|
297
|
+
github-token:
|
|
298
|
+
description: 'GitHub token for API access'
|
|
299
|
+
required: true
|
|
300
|
+
|
|
301
|
+
outputs:
|
|
302
|
+
result:
|
|
303
|
+
description: 'Action result'
|
|
304
|
+
|
|
305
|
+
runs:
|
|
306
|
+
using: 'node20'
|
|
307
|
+
main: 'dist/index.js'
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Summary
|
|
313
|
+
|
|
314
|
+
| Aspect | Recommendation |
|
|
315
|
+
|--------|---------------|
|
|
316
|
+
| Location | `.github/actions/` for local, separate repo for shared |
|
|
317
|
+
| Branding | Required for Marketplace, recommended for all |
|
|
318
|
+
| Versioning | Semantic versions with major tag updates |
|
|
319
|
+
| Documentation | README.md with examples, CHANGELOG.md |
|
|
320
|
+
| Security | Pin to SHA, minimal permissions |
|