ci: migrate light jobs to smithy self-hosted runners#458
Open
Conversation
light ci.yml::release
integration-examples.yml::trigger-integration
production-readiness.yml::security-validation
production-readiness.yml::production-readiness
release.yml::create_release
weekly-checksum-update.yml::notify
Stays on ubuntu-latest:
- ci.yml::lint Bazel (buildifier) not on smithy
- ci.yml::hermiticity-check Bazel
- ci.yml::test-linux Bazel + service container (registry:2)
- ci.yml::test-macos macOS only
- ci.yml::test-windows Windows only
- ci.yml::bcr-docker-test docker run against vendor BCR image
- ci.yml::integration Bazel + sudo apt-get
- bcr-compatibility.yml::bcr-hermetic-test docker run against vendor BCR image
- bcr-compatibility.yml::bcr-toolchain-validation docker run vendor BCR image
- bcr-compatibility.yml::bcr-multi-platform-test multi-OS matrix + Bazel
- bcr-compatibility.yml::bcr-incompatible-flags-test Bazel
- bcr-compatibility.yml::bcr-metadata-validation keeping co-located with BCR suite
- bcr-compatibility.yml::bcr-test-module-validation Bazel
- bcr-compatibility.yml::bcr-summary keeping co-located with BCR suite
- docs-deploy.yml::bazel-build-and-deploy Bazel
- integration-examples.yml::direct-integration-test Bazel + sudo mv
- production-readiness.yml::smoke-tests Bazel + macOS matrix
- production-readiness.yml::performance-benchmark Bazel
- production-readiness.yml::compatibility-matrix Bazel + macOS matrix
- weekly-checksum-update.yml::checksum-update Bazel + sudo apt-get install
The repo is a Bazel rules project for WebAssembly components, so the
overwhelming majority of jobs depend on Bazel which is not yet on the
smithy toolchains role. The five migrated jobs are pure shell/Node
tasks (release archive creation, integration test dispatch, checksum
greps, status summaries) that have no Bazel/sudo/apt-get/container
dependencies and run comfortably on the 'light' (4G) class.
publish.yml and publish-to-bcr.yml only call the bazel-contrib reusable
workflow and have no own runs-on, so nothing to migrate there.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates 5 small, dependency-free CI jobs in
rules_wasm_componentfrom GitHub-hostedubuntu-latestto the smithy self-hosted fleet (lightclass, 4 GB MemoryHigh). The remaining 17 jobs stay on hosted runners because they depend on Bazel,sudo apt-get,docker runagainst vendor BCR images, or non-Linux platforms — none of which are currently in the smithy toolchains role.This follows the pulseengine/spar#201 / rivet / kiln / gale migration playbook documented at https://github.com/pulseengine/smithy/blob/main/docs/migration-playbook.md.
Coverage
Migrated to
[self-hosted, linux, x64, light]lightis enoughci.ymlreleaseintegration-examples.ymltrigger-integrationpeter-evans/repository-dispatchproduction-readiness.ymlsecurity-validationtoolchains/production-readiness.ymlproduction-readinessrelease.ymlcreate_releaseweekly-checksum-update.ymlnotifyStays on hosted (with in-place reason comments)
ci.ymllintci.ymlhermiticity-checkci.ymltest-linuxregistry:2ci.ymltest-macosci.ymltest-windowsci.ymlbcr-docker-testdocker runvs vendor BCR imageci.ymlintegrationsudo apt-getbcr-compatibility.ymldocker run+ multi-OS matrixdocs-deploy.ymlbazel-build-and-deployintegration-examples.ymldirect-integration-testsudo mvinstallproduction-readiness.ymlsmoke-testsproduction-readiness.ymlperformance-benchmarkproduction-readiness.ymlcompatibility-matrixweekly-checksum-update.ymlchecksum-updatesudo apt-get installpublish.ymlandpublish-to-bcr.ymlonly call thebazel-contrib/publish-to-bcrreusable workflow and have no ownruns-on:to change.Workarounds applied
None — the migrated jobs are pure shell / Node and the playbook's standard workarounds (sudo mv, cargo-deny-action, free-disk-space gate, syft
-bflag) didn't apply. Every kept-hosted job already uses one of these patterns and the comment names which one.Test plan
release(light) — runs only on push to main, so first real exercise will be the next merge to main; pre-merge dry-run is the workflow YAML linttrigger-integration(light)security-validation(light)production-readiness(light)notify(light, only fires afterchecksum-update)Rollback
Revert the merge commit; every change is
runs-on:only.Follow-ups (out of scope here, tracked in smithy)
docker runjobs need podman-shim validation againstgcr.io/bazel-public/ubuntu2204.