kodehort/SST Operations
A unified GitHub Action for SST operations: deploy, diff, and remove
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| operation | SST operation to perform: • 'deploy': Deploy infrastructure to AWS (can auto-compute stage from Git context) • 'diff': Preview infrastructure changes (requires explicit stage for comparison) • 'remove': Delete deployed resources (requires explicit stage for safety) • 'stage': Compute stage name from Git context (utility operation, no infrastructure access) This input is required - no default operation is provided to prevent dangerous failure states. | yes | — |
| token | GitHub token for authentication: • Required for: deploy, diff, remove operations (infrastructure access and PR comments) • Not required for: stage operation (utility only) • Use: secrets.GITHUB_TOKEN or personal access token • Local testing: Use "fake-token" | yes | — |
| stage | SST stage name: • deploy: Optional - auto-computed from branch/PR if not provided • diff: Required - need target stage to compare infrastructure changes • remove: Required - explicit stage name for safety (prevents accidental deletions) • stage: Not applicable - computes stage name as output • Format: alphanumeric, hyphens, underscores (e.g., "production", "pr-123") | no | — |
| comment-mode | When to post PR comments (infrastructure operations only): • 'always': Comment on every operation run • 'on-success': Comment only when operation succeeds (default) • 'on-failure': Comment only when operation fails • 'never': Disable PR comments • Note: stage operations don't post PR comments | no | on-success |
| fail-on-error | Whether to fail the GitHub Action workflow when SST operation fails: • true (default): Fail workflow on operation errors • false: Continue workflow even if operation fails (useful for optional deployments) • Applies to all operation types | no | true |
| max-output-size | Maximum output size before truncation (in bytes): • Default: 50000 (50KB) - suitable for most deployments • Range: 1000-1000000 (1KB-1MB) • Use 0 for unlimited (not recommended for large outputs) • Helps prevent GitHub Actions log size limits | no | 50000 |
| runner | Package manager/runtime for SST commands (infrastructure operations only): • 'bun' (default): Use Bun runtime and package manager • 'npm': Use npm with package scripts • 'pnpm': Use PNPM runtime • 'yarn': Use Yarn runtime • 'sst': Use SST binary directly (no package manager) • Note: stage operations don't require a runner | no | bun |
| truncation-length | Maximum length for computed stage names (stage operation only): • Default: 26 characters (fits Route53 DNS limits) • Range: 1-100 characters • Longer branch/PR names are truncated to this length • Only applies to stage operations - ignored by other operations | no | 26 |
| prefix | Prefix for stage names starting with numbers (stage operation only): • Default: "pr-" (creates names like "pr-123" for PR #123) • Format: lowercase letters, numbers, hyphens only • Max length: 10 characters • Only applies to stage operations - ignored by other operations | no | pr- |
Outputs
| name | description |
|---|---|
| success | Whether SST operation completed successfully |
| operation | The operation that was performed |
| stage | The stage that was operated on |
| resource_changes | Number of resource changes made (deploy/remove only) |
| outputs | JSON array of generic outputs from deployment (replaces urls) |
| app | The SST app name |
| completion_status | Operation completion status (complete, partial, failed) |
| permalink | SST Console permalink for operation details |
| truncated | Whether the operation output was truncated |
| diff_summary | Summary of planned changes (diff only) |
| computed_stage | The computed stage name (stage only) |
| ref | The Git ref used for stage calculation (stage only) |
| event_name | The GitHub event name (stage only) |
| is_pull_request | Whether the event is a pull request (stage only) |