Repository navigation
ci(gitlab): keep an unstripped release binary per main commit - #1476
Open
duncanista wants to merge 4 commits into
Open
duncanista wants to merge 4 commits into
duncanista wants to merge 4 commits into
Conversation
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The early KEEP_SYMBOLS declaration prevents normal and symbols builds from sharing expensive dependency and toolchain cache layers.
1 open issue
What changed in this PR
Adds retained release binaries for size and profiling analysis of the Lambda extension without changing the shipped layers.
Changes:
- Enables symbol-preserving builds for standard amd64 and arm64 flavors.
- Adds non-blocking CI jobs that run automatically on main and tags, and manually elsewhere.
- Retains stripped and unstripped binaries with build metadata for 90 days.
| File | Description |
|---|---|
images/Dockerfile.bottlecap.compile |
Adds a build argument to disable release stripping. |
.gitlab/templates/pipeline.yaml.tpl |
Adds symbol-build jobs and retained artifacts. |
.gitlab/scripts/compile_bottlecap.sh |
Passes the symbol flag and uses separate output names. |
.gitlab/datasources/flavors.yaml |
Enables symbol jobs for amd64 and arm64. |
Review effort: Balanced
Contributor
|
This comment will be updated automatically if new data arrives. 🔗 Commit SHA: 340775b | Docs | View more details | Give us feedback! |
lym953
approved these changes
Oct 28, 2026
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.

TL;DR: GitLab keeps an unstripped copy of the release binary (amd64 and arm64) for each main commit, as a 90-day artifact. The shipped layer does not change.
Why: The shipped binary is stripped, so we cannot see what takes space in it or profile it. With symbols we can attribute binary size per crate and read cold-start profiles. #1480 compares each pipeline's binary with this main baseline.
Overview
Jira: SVLS-9976
First PR of the dev-tooling stack. It does not depend on the CI stack.
Add the job
bottlecap symbols (<flavor>)for the flavors withkeep_symbols: true(amd64and arm64). It compiles the release profile again with
KEEP_SYMBOLS=1(
CARGO_PROFILE_RELEASE_STRIP=false) and keeps, for 90 days, under the artifact namebottlecap-<suffix>-<short sha>:bottlecap (<flavor>),It runs on
mainand on tags, and is manual on other branches. Every rule hasallow_failure: true, and the retry covers only runner and timeout failures, so the job neverblocks a pipeline. The shipped layer does not change. Size and profiling work needs these
binaries; the binary report job later in this stack compares against them.
Size: 74 core lines, 74 lines in total.
Testing
.gitlab/templates/pipeline.yaml.tpl, parsed as YAML: passcompile_bottlecap.sh: no new finding (10 old infos): pass