Skip to content

perf(build): use zstd instead of gzip for weblog image compression#7011

Open
rochdev wants to merge 1 commit into
mainfrom
rochdev/perf-gzip-to-zst
Open

perf(build): use zstd instead of gzip for weblog image compression#7011
rochdev wants to merge 1 commit into
mainfrom
rochdev/perf-gzip-to-zst

Conversation

@rochdev
Copy link
Copy Markdown
Member

@rochdev rochdev commented May 22, 2026

Summary

  • Replaces gzip with zstd for saving and loading weblog image artifacts in build.sh
  • Updates the artifact filename extension from .tar.gz to .tar.zst
  • Fixes unquoted $BINARIES_FILENAME variable references

Dependencies

None — this PR is independent and can be merged in any order.

Test plan

  • Run a weblog build with --save-to-binaries and verify the .tar.zst artifact is created
  • Verify the artifact can be loaded back correctly in a subsequent run

🤖 Generated with Claude Code

Switches from gzip to zstd for saving/loading weblog image artifacts,
yielding faster compression with better ratios.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

utils/_context/containers.py                                            @DataDog/system-tests-core
utils/build/build.sh                                                    @DataDog/system-tests-core

@datadog-datadog-prod-us1
Copy link
Copy Markdown

datadog-datadog-prod-us1 Bot commented May 22, 2026

Pipelines  Tests

Fix all issues with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

Testing the test | System Tests (golang, dev) / End-to-end #2 / net-http-orchestrion 2   View in Datadog   GitHub Actions

🛟 This job is unlikely to succeed on retry. Please review your pipeline configuration. Failed to pull image 'mcr.microsoft.com/mssql/server'. Access denied or repository does not exist. Consider running 'docker login'.

Testing the test | all-jobs-are-green   View in Datadog   GitHub Actions

See error Check Run failed: System Tests (golang, dev) / End-to-end #2 / net-http-orchestrion.

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0dc377d | Docs | Datadog PR Page | Give us feedback!

@rochdev rochdev marked this pull request as ready for review May 29, 2026 20:04
@rochdev rochdev requested a review from a team as a code owner May 29, 2026 20:04
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0dc377df6e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread utils/build/build.sh
if [ -f "$BINARIES_FILENAME" ]; then
echo "Loading image from $BINARIES_FILENAME"
docker load --input $BINARIES_FILENAME
zstd -d -c "$BINARIES_FILENAME" | docker load
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Load zstd artifacts through Docker directly

In environments that have Docker but not the zstd CLI, the downloaded weblog artifact can no longer be loaded because this path now shells out to zstd before docker load; the run-end-to-end.yml/debug-harness.yml test jobs download binaries/ and call ./build.sh without installing that tool. Docker's own load command documents that it can read tar archives compressed with gzip, bzip2, xz, or zstd from --input/STDIN, so using docker load --input "$BINARIES_FILENAME" here would preserve the new artifact format without adding a new runtime dependency to every artifact consumer.

Useful? React with 👍 / 👎.

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.

1 participant