LibreChat/.github/workflows
Danny Avila d3ea6f415d
🐆 perf: Build Dev Branch Images on Native ARM and Cheapen Asset Brotli (#15441)
The dev-branch image build takes 20-40 minutes and has hit its 130-minute
timeout. Neither cause was in the bundler.

Per-step timings from run 33424998112 show QEMU is ~84% of the work:

  npm ci             52.6s (amd64)  vs  333.2s (arm64, QEMU)  — 6.3x
  npm run frontend   90.4s (amd64)  vs  442.8s (arm64, QEMU)  — 4.9x

So build each platform on a runner of its own architecture, push by digest,
and stitch the digests into the multi-platform manifest lists in a merge job.
The tags consumers pull are unchanged. Layer caching goes to GHCR beside the
image rather than `type=gha`: the Actions cache is capped at 10GB repo-wide
and is branch-scoped, so `dev` and `main` runs would not share it, while a
registry cache has no cap and is reusable by the other four image workflows
when this pattern is rolled out to them.

Separately, vite-plugin-compression2 defaults to brotli quality 11, which
costs ~13s of CPU on this 18.4MB bundle against ~0.47s for gzip-9, and the
plugin's scheduler serializes quality >= 10 as a high-memory operation so it
cannot use the runner's cores. Quality 5 compresses in ~0.2s and still lands
under gzip (4.3MB vs 5.0MB). `.br` is only served when
ENABLE_STATIC_ASSET_BROTLI is set, which is off by default, so the 0.5MB the
top quality buys is paid for on every build of every platform and rarely
collected. The client build goes from ~11s to ~4s; gzip output is unchanged.

This is a pilot on the dev-branch workflow only. dev-images,
dev-staging-images, main-image-workflow and tag-images still use QEMU and
still have no layer cache.
2026-08-31 22:05:13 -04:00
..
a11y.yml
agents-integration-tests.yml
backend-review.yml 🎨 ci: Gate Frontend Jest on Codegraph Selection (Stage 1.5) (#15145) 2026-08-23 23:03:21 -04:00
build.yml
cache-integration-tests.yml
client.yml
codegraph-e2e-votes.yml 📍 ci: Pin the Votes Ledger Results JSON to an Absolute Path (#15166) 2026-08-24 10:33:12 -04:00
codegraph-select.yml 🎭 ci: Gate Playwright Lanes and Docker Smokes on Codegraph Selection (Stage 2) (#15136) 2026-08-23 14:58:45 -04:00
data-provider.yml
data-schemas.yml
deploy.yml
dev-branch-images.yml 🐆 perf: Build Dev Branch Images on Native ARM and Cheapen Asset Brotli (#15441) 2026-08-31 22:05:13 -04:00
dev-images.yml
dev-staging-images.yml
docker-smoke.yml 🎭 ci: Gate Playwright Lanes and Docker Smokes on Codegraph Selection (Stage 2) (#15136) 2026-08-23 14:58:45 -04:00
frontend-review.yml 🎨 ci: Gate Frontend Jest on Codegraph Selection (Stage 1.5) (#15145) 2026-08-23 23:03:21 -04:00
frontend-windows-nightly.yml
helmcharts.yml
langfuse-fanout.yml
locize-i18n-sync.yml
main-image-workflow.yml
playwright-bombadil.yml
playwright-mock.yml 👐 ci: Cancel the Playwright E2E Gate With Its Run (#15415) 2026-08-31 09:54:53 -04:00
pr-retarget-dev.yml 🎯 ci: Retarget Pull Requests Opened Against main to dev (#15416) 2026-08-31 11:29:34 -04:00
retry-docker-builds.yml
static-checks.yml 🪥 chore: Run CI's Static Checks on Each Commit's Diff (#15303) 2026-08-28 10:08:37 -04:00
sync-helm-chart-tags.yml
tag-images.yml