Skip to content

build: Optimize fuzzer artifact upload/download in scheduled.yml#16767

Open
pratikpugalia wants to merge 1 commit intofacebookincubator:mainfrom
pratikpugalia:export-D96555567
Open

build: Optimize fuzzer artifact upload/download in scheduled.yml#16767
pratikpugalia wants to merge 1 commit intofacebookincubator:mainfrom
pratikpugalia:export-D96555567

Conversation

@pratikpugalia
Copy link
Contributor

Summary:
The compile job in scheduled.yml builds 14 fuzzer binaries and uploads each as
a separate artifact (~500-700 MB unstripped debug C++ binaries). This results in
14 sequential upload-artifact calls totaling ~15-30 min of upload time, plus
redundant download overhead across 19 downstream fuzzer jobs.

This diff optimizes artifact handling in two ways:

  1. Strip debug symbols: After the build, strip -o copies each binary to a
    staging directory without debug info, reducing individual binary sizes from
    ~500-700 MB to ~50-70 MB each (~1 GB total).

  2. Bundle into a single artifact: Replaces 14 individual upload-artifact
    steps with one upload of the staging directory, and updates all 19 downstream
    fuzzer jobs to download this single fuzzer-binaries artifact.

Estimated impact:

  • Upload time: ~15-30 min → ~2-3 min (1 upload vs 14 sequential)
  • Download size per fuzzer job: ~500-700 MB → ~1 GB shared bundle (stripped)
  • Net wall-clock savings: ~15-25 min per workflow run

The signatures artifact is unaffected. All binary filenames used by chmod +x
and execution steps remain unchanged.

Differential Revision: D96555567

Summary:
The compile job in `scheduled.yml` builds 14 fuzzer binaries and uploads each as
a separate artifact (~500-700 MB unstripped debug C++ binaries). This results in
14 sequential `upload-artifact` calls totaling ~15-30 min of upload time, plus
redundant download overhead across 19 downstream fuzzer jobs.

This diff optimizes artifact handling in two ways:

1. **Strip debug symbols**: After the build, `strip -o` copies each binary to a
   staging directory without debug info, reducing individual binary sizes from
   ~500-700 MB to ~50-70 MB each (~1 GB total).

2. **Bundle into a single artifact**: Replaces 14 individual `upload-artifact`
   steps with one upload of the staging directory, and updates all 19 downstream
   fuzzer jobs to download this single `fuzzer-binaries` artifact.

Estimated impact:
- Upload time: ~15-30 min → ~2-3 min (1 upload vs 14 sequential)
- Download size per fuzzer job: ~500-700 MB → ~1 GB shared bundle (stripped)
- Net wall-clock savings: ~15-25 min per workflow run

The `signatures` artifact is unaffected. All binary filenames used by `chmod +x`
and execution steps remain unchanged.

Differential Revision: D96555567
@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 14, 2026
@meta-codesync
Copy link

meta-codesync bot commented Mar 14, 2026

@pratikpugalia has exported this pull request. If you are a Meta employee, you can view the originating Diff in D96555567.

@netlify
Copy link

netlify bot commented Mar 14, 2026

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 12a5eca
🔍 Latest deploy log https://app.netlify.com/projects/meta-velox/deploys/69b4b1d924ffb60007583d9d

@pratikpugalia pratikpugalia changed the title Optimize fuzzer artifact upload/download in scheduled.yml build: Optimize fuzzer artifact upload/download in scheduled.yml Mar 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant