CI: run LocalStack via lstk instead of the localstack PyPI package - #25
Open
silv-io wants to merge 2 commits into
Open
CI: run LocalStack via lstk instead of the localstack PyPI package#25silv-io wants to merge 2 commits into
silv-io wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…job env) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
aidehn
reviewed
Aug 26, 2026
| # The config pins the emulator image to the release version. It lives outside | ||
| # the workspace so the "Check Uncommitted Changes" step stays clean. | ||
| run: | | ||
| cat > "${RUNNER_TEMP}/lstk-config.toml" <<EOF |
Contributor
There was a problem hiding this comment.
out of curiosity is it possible at all to change the chosen image without using the config ?
aidehn
approved these changes
Aug 26, 2026
aidehn
left a comment
Contributor
There was a problem hiding this comment.
LGTM! Tests are passing so looks good! Thanks for picking this up - it means once we move away from the localstack CLI in our release there's less for us to do!
| - name: Install lstk | ||
| run: | | ||
| pip install --pre --upgrade localstack | ||
| npm install -g @localstack/lstk |
Contributor
There was a problem hiding this comment.
hopefully at some point lstk releases a github action? 👀
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.
Motivation
The release workflow installs
localstack==${RELEASE_VERSION}from PyPI just to start LocalStack for the SDK tests. This couples the SDK release to thelocalstackpackage release (published separately via localstack-cli-standalone, with no retry on PyPI propagation lag) and stands in the way of the planned deprecation of that package. The pinned Docker image is the actual dependency; the pip package is only the launcher.Changes
release.yml: installlstkvia npm instead ofpip install localstack==$VERSION; pin the emulator image through an lstk config file in$RUNNER_TEMP(outside the workspace, so the "Check Uncommitted Changes" gate stays clean).lstk start --timeout 2mreplacesstart -d+wait— it blocks until the emulator is healthy and dumps startup logs itself on failure.logs/stoppass the same--config, since the derived container name embeds the pinned tag.test.yml: same swap, no config file needed — lstk defaults tolocalstack/localstack-pro:latest.DEBUG/DISABLE_EVENTSbecomeLOCALSTACK_DEBUG/LOCALSTACK_DISABLE_EVENTS(lstk forwardsLOCALSTACK_*host env vars into the container).The Docker image pull remains the only release-time dependency on LocalStack itself.
Testing
Verified locally with lstk built from latest main: the exact pinned-style config plus
lstk --config … start --timeout 2m/logs/stopall pass, with DEBUG output visible in the logs (env forwarding works). Thetest.ymlpath runs on this PR; therelease.ymlpath is first exercised on the next release.Review
Workflow-only change. Worth a skim of the
release.ymldiff since that path only runs during an actual release. Notes for reviewers:portis required in an lstk[[containers]]block (omitting it fails validation), and a tag the license server can't parse degrades to in-container license validation instead of failing the start.Closes COSY-856
🤖 Generated with Claude Code