Skip to content

ci(gitlab): keep an unstripped release binary per main commit - #1476

Open
duncanista wants to merge 2 commits into
mainfrom
jordan.gonzalez/release-symbols/feature
Open

duncanista wants to merge 2 commits into
mainfrom
jordan.gonzalez/release-symbols/feature

Conversation

@duncanista

@duncanista duncanista commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

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 with keep_symbols: true (amd64
and arm64). It compiles the release profile again with KEEP_SYMBOLS=1
(CARGO_PROFILE_RELEASE_STRIP=false) and keeps, for 90 days, under the artifact name
bottlecap-<suffix>-<short sha>:

  • the shipped stripped binary from bottlecap (<flavor>),
  • the same compile with the symbol table,
  • a build-info file (commit, ref, pipeline and job URLs).

It runs on main and on tags, and is manual on other branches. Every rule has
allow_failure: true, and the retry covers only runner and timeout failures, so the job never
blocks 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

  • applies on the previous PR of the stack: pass
  • gomplate v4.3.3 render of .gitlab/templates/pipeline.yaml.tpl, parsed as YAML: pass
  • shellcheck on compile_bottlecap.sh: no new finding (10 old infos): pass

@duncanista
duncanista requested a review from a team as a code owner October 28, 2026 18:57
@duncanista
duncanista requested review from lym953 and a balanced review from Copilot October 28, 2026 18:57
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T18:59:29.762622Z 86dc56f PR opened
🔒 Security Review ✅ Completed 2026-10-28T19:00:41.214557Z 86dc56f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment thread images/Dockerfile.bottlecap.compile Outdated
@datadog-official

datadog-official Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Pipelines

❌ Errors

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 2 Pipeline jobs failed

Bottlecap (Rust) | Lockfile Scan — 🔧 Needs a code fix, caused by this PR

View more details · View in GitHub Actions

Bottlecap (Rust) | Audit

View more details · View in GitHub Actions

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: ff7123d | Docs | View more details | Give us feedback!

@duncanista duncanista changed the title [SVLS-9976] ci(gitlab): keep an unstripped release binary per main commit ci(gitlab): keep an unstripped release binary per main commit Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants