Skip to content

chore(scale-set): docs and workflows changes - #5347

Open
edersonbrilhante wants to merge 11 commits into
feat-scale-set-typescriptfrom
feat-scale-set-typescript-docs-ci
Open

edersonbrilhante wants to merge 11 commits into
feat-scale-set-typescriptfrom
feat-scale-set-typescript-docs-ci

Conversation

@edersonbrilhante

@edersonbrilhante edersonbrilhante commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Description

Adds the documentation, CI, release, and integration-test support needed to validate and publish the GitHub Actions scale-set service introduced by #5300.

This PR includes:

  • Dependabot coverage and grouping for GitHub Actions, Lambda dependencies, the scale-set service container, MiniStack, and documentation dependencies.
  • Lambda CI coverage for formatting, linting, tests, distribution builds, multi-architecture scale-set container builds, and an isolated container smoke test. The smoke test runs the image with a read-only filesystem, dropped capabilities, no-new-privileges, and no network access, then validates the controller health response.
  • A MiniStack ECS/MockServer integration test that builds and pushes the scale-set image to the local registry, applies the multi-runner-scale-set example, validates the rendered SSM configuration and ECS task definition, exercises GitHub App and scale-set protocol requests, verifies runner launch and registration, changes the minimum capacity to zero, verifies scale-down and termination, and cleans up the deployment.
  • Pinned MockServer expectations and MiniStack fixtures for installation-token exchange, runner registration, scale-set discovery and label updates, JIT configuration generation, message-session creation, polling, and cleanup.
  • Release workflow support for publishing the multi-architecture scale-set service image to GHCR with an SBOM, build provenance, and registry attestation. Release notes now include the immutable image digest and attestation information alongside Lambda artifact attestations.
  • Security documentation describing the scale-set image provenance and the gh attestation verify command for production image verification.

Test Plan

  • Lambda CI runs the repository format, lint, test, and build checks and builds the scale-set image for linux/amd64 and linux/arm64.
  • The container smoke test validates the hardened image independently of AWS or GitHub.
  • The MiniStack workflow runs the scale-set ECS/MockServer smoke test with pinned MiniStack and MockServer versions.
  • git diff --check and the changed-file scope were verified for this follow-up branch.

Related Issues

@edersonbrilhante
edersonbrilhante requested review from a team as code owners September 3, 2026 21:17
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/attest 1e69f48acb82d1966a394da916b4c1698aa569d6 UnknownUnknown
actions/docker/build-push-action 53b7df96c91f9c12dcc8a07bcb9ccacbed38856a 🟢 7.5
Details
CheckScoreReason
Security-Policy🟢 9security policy file detected
Binary-Artifacts🟢 10no binaries found in the repo
Code-Review🟢 10all changesets reviewed
Maintained🟢 1030 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Signed-Releases⚠️ -1no releases found
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 7dependency not pinned by hash detected -- score normalized to 7
SAST🟢 9SAST tool detected but not run on all commits
actions/docker/login-action dbcb813823bdd20940b903addbd779551569679f 🟢 8.5
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Security-Policy🟢 9security policy file detected
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Pinned-Dependencies🟢 6dependency not pinned by hash detected -- score normalized to 6
Packaging🟢 10packaging workflow detected
SAST🟢 9SAST tool detected but not run on all commits
actions/docker/setup-buildx-action 37fe631027851001ddb9b187196cc803df7f5f0e 🟢 8.6
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 9security policy file detected
Code-Review🟢 10all changesets reviewed
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 7dependency not pinned by hash detected -- score normalized to 7
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
actions/docker/setup-qemu-action 96fe6ef7f33517b61c61be40b68a1882f3264fb8 🟢 8.4
Details
CheckScoreReason
Security-Policy🟢 9security policy file detected
Binary-Artifacts🟢 10no binaries found in the repo
Maintained🟢 1030 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
SAST🟢 10SAST tool is run on all commits

Scanned Files

  • .github/workflows/release.yml

@edersonbrilhante
edersonbrilhante marked this pull request as draft September 3, 2026 21:28
@edersonbrilhante edersonbrilhante changed the title chore(scale-set): move docs and workflows to follow-up PR chore(scale-set): docs and workflows change Sep 3, 2026
@edersonbrilhante edersonbrilhante changed the title chore(scale-set): docs and workflows change chore(scale-set): docs and workflows changes Sep 3, 2026
@edersonbrilhante edersonbrilhante added orchestration-provider:scale-set javascript Pull requests that update Javascript code labels Sep 4, 2026
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 17e79aa to 29a4b53 Compare September 8, 2026 15:28
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 54a8eb3 to 1172732 Compare September 8, 2026 15:29
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 29a4b53 to 81b05fd Compare September 8, 2026 20:04
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 1172732 to cdca4dc Compare September 8, 2026 20:04
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 81b05fd to 266ffbe Compare September 8, 2026 20:12
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from cdca4dc to d99f1f8 Compare September 8, 2026 20:12
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 84e24df to 7a8548f Compare September 8, 2026 20:48
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from d99f1f8 to 4d9bfd0 Compare September 8, 2026 20:48
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 7a8548f to 88d73fb Compare September 10, 2026 16:55
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 4d9bfd0 to d568ef4 Compare September 10, 2026 16:55
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 88d73fb to 7330164 Compare September 11, 2026 07:53
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from d568ef4 to aca1a4d Compare September 11, 2026 07:53
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 91d755a to aca1a4d Compare September 15, 2026 02:19
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5348 September 15, 2026 09:57
@edersonbrilhante
edersonbrilhante added this pull request to stack #5406 September 15, 2026 09:57
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from 3023ad1 to 868e279 Compare September 15, 2026 13:52
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5406 September 15, 2026 13:54
@edersonbrilhante
edersonbrilhante added this pull request to stack #5432 September 15, 2026 13:55
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from aca1a4d to 9f0a3a9 Compare September 15, 2026 13:56
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from b46fb11 to c611851 Compare September 16, 2026 11:26
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch 2 times, most recently from 5128d72 to fb0c043 Compare September 16, 2026 15:23
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from c611851 to 861c06d Compare September 16, 2026 15:34
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from fb0c043 to f95f095 Compare September 16, 2026 22:08
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 861c06d to ca51c9c Compare September 16, 2026 22:08
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript branch from f95f095 to c215749 Compare September 16, 2026 22:11
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from ca51c9c to 764f7d3 Compare September 16, 2026 22:11
@edersonbrilhante
edersonbrilhante force-pushed the feat-scale-set-typescript-docs-ci branch from 62187e3 to a8a89d4 Compare September 16, 2026 22:22
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5431 September 17, 2026 14:28
@edersonbrilhante
edersonbrilhante added this pull request to stack #5437 September 17, 2026 14:38
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5437 September 17, 2026 18:20
@edersonbrilhante
edersonbrilhante added this pull request to stack #5441 September 17, 2026 18:41
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5441 September 17, 2026 19:01
@edersonbrilhante
edersonbrilhante added this pull request to stack #5442 September 17, 2026 19:01
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5442 September 17, 2026 21:40
@edersonbrilhante
edersonbrilhante added this pull request to stack #5443 September 18, 2026 10:18
@edersonbrilhante
edersonbrilhante removed this pull request from stack #5443 September 18, 2026 10:19
edersonbrilhante and others added 5 commits September 18, 2026 12:19
## Description

Add the scale-set service-container smoke test and the ECS/MockServer
scale-set lifecycle test on top of the scale-set Terraform wiring.

- Build the scale-set service image from
`lambdas/services/scale-set/Dockerfile`, push it to a MiniStack ECR
repository, and allow the MiniStack account to pull it.
- Run the controller through its real ECS container entrypoint with a
read-only filesystem, dropped capabilities, and `no-new-privileges`.
- Configure the scale-set example with the MockServer GitHub App/Actions
endpoints and the required SSM-backed GitHub App values.
- Verify the controller resolves the runner group and scale set, updates
labels, creates a session, and reaches a converged state.
- Start at `minRunners = 1`, verify MiniStack creates and registers the
EC2 runner, then register a new ECS task definition with `minRunners =
0` and verify the controller removes the mocked GitHub runner and
terminates the EC2 instance.
- Keep the MockServer protocol fixture deterministic, including dynamic
agent-name matching and runner/session cleanup.

The workflow uses MiniStack 1.5.12 and a pinned MockServer image. The
scale-set lifecycle integration remains in this PR; PR #5416 provides
only the reusable example-fixture support.

## Test Plan

- Full local MiniStack 1.5.12 lifecycle test passed: image build/ECR
push, Terraform apply of 272 resources, ECS controller startup, scale-up
runner registration, ECS redeployment with `minRunners = 0`, EC2 runner
termination, MockServer session cleanup, and Terraform destroy.
- `sh -n tests/ministack/run-scale-set-integration.sh`
- `shellcheck -S warning tests/ministack/run-scale-set-integration.sh`
- `python3 -m json.tool mockserver/initializerJson.json`
- `terraform fmt -check examples/multi-runner-scale-set/main.tf
examples/multi-runner-scale-set/variables.tf`
- `git diff --check`

## Related Issues

Depends on #5347. The Terraform wiring is provided by the scale-set
stack beginning at #5350; the example is restored in #5405.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Guilherme Caulada <guilherme.caulada@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update Javascript code orchestration-provider:scale-set

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant