perf: reduce CI integration test wall time by ~50%#1399
Conversation
- Add `-t 1` to `docker compose down` to reduce container shutdown grace period from 10s to 1s (~30 min aggregate CI savings) - Split Domain & Network Tests into separate Domain Tests and Network Tests jobs to reduce critical path (~17 min savings) - Remove unnecessary `needs: test-chroot-languages` dependency from chroot package-managers job (~4 min savings) - Add missing tests (gh-host-injection, ghes-auto-populate, skip-pull, workdir-tmpfs-hiding) to CI jobs Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw-firewall/sessions/48965f04-d66b-4ef4-914d-f4ecd980ed20
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS
|
This comment has been minimized.
This comment has been minimized.
Remove ghes-auto-populate, gh-host-injection, and workdir-tmpfs-hiding from CI test patterns. These tests have pre-existing failures and were never running in CI before. They need to be fixed separately before being added to CI. Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw-firewall/sessions/9e55fbef-edba-4844-a9fa-b2176ac4cc53
Removed |
There was a problem hiding this comment.
Pull request overview
This PR speeds up the repository’s GitHub Actions integration test suite by reducing per-test Docker Compose teardown time, improving parallelism by splitting a long-running job, and removing an unnecessary job dependency.
Changes:
- Reduce
docker compose downgrace period to 1s during test cleanup to avoid repeated 10s waits. - Split the previous Domain & Network integration job into two parallel jobs (Domain Tests / Network Tests).
- Include
skip-pullintegration tests in CI and remove an unnecessaryneedsdependency in chroot workflows.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/docker-manager.ts |
Speeds up container teardown by adding docker compose down -t 1. |
src/docker-manager.test.ts |
Updates the unit test expectation to match the new compose down args. |
.github/workflows/test-integration-suite.yml |
Splits domain/network tests into two jobs and adds skip-pull to patterns. |
.github/workflows/test-chroot.yml |
Removes a serial dependency so package manager tests can run in parallel. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
🔮 The oracle records this smoke rite.
Warning
|
Integration tests take 37 min critical path / 106 min aggregate across 4 jobs. Root causes: 10s default
docker compose downgrace period per test (×237 tests), unbalanced job sizes, and unnecessary job dependencies.docker compose down -t 1(P0, ~30 min aggregate saved)Containers' main processes have already exited by the time
stopContainers()runs. The default 10s SIGTERM grace period is pure waste.Split Domain & Network job (P1, ~17 min off critical path)
test-domain-network(77 tests, 37 min) → two parallel jobs:Remove chroot job dependency (P4, ~4 min saved)
test-chroot-package-managershadneeds: test-chroot-languagesbut installs its own runtimes via setup actions. Removed the unnecessary serial dependency.Add
skip-pulltests to CI (P5)skip-pull.test.tswas not matched by any job's--testPathPatternsand is now included in the Container & Ops Tests job.Note: Three other previously unmatched test files (
ghes-auto-populate,gh-host-injection,workdir-tmpfs-hiding) have pre-existing failures and were not added — they need to be fixed separately before being included in CI.🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.