Skip to content

Run every x64 Linux test on bazelflare - #8020

Merged
danlapid merged 3 commits into
mainfrom
dlapid/bazelflare-all-tests
Oct 28, 2026
Merged

danlapid merged 3 commits into
mainfrom
dlapid/bazelflare-all-tests

Conversation

@danlapid

@danlapid danlapid commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Moves the last tests CI ran on the test-linux job's runner onto bazelflare:

  • Network tests (requires-network: dns-nodejs, http-nodejs, worker-loader) ask for an executor with egress (network=on).
  • Container tests (requires-container-engine: container-client, container-shutdown) run on executors started from the deployment's Docker-in-Docker image (container-image=executor-dind). They now load their images from docker load tarballs themselves, so CI's bazel run //images:load_all step is gone. The images go through //build/config:container_test_images, which workerd's .bazelrc turns on, because edgeworker loads workerd as a plain repository without rules_oci.

That retires ci-bazelflare-runner-tests. Coverage stays as before: the sanitizer and coverage configs keep skipping both kinds of test, which ran only in the default config on the runner.

All 13 network and container test targets pass on bazelflare from a workstation.

🤖 Generated with Claude Code

@danlapid
danlapid requested review from a team as code owners October 27, 2026 06:07
@ask-bonk

ask-bonk Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Since last review: 0 resolved, 0 still open, 0 new.
LGTM!

Not re-run: api-compat (no author changes in their files since the last review)


Reviewed commit: 66b83968 · github run

@clanky-the-clanker

clanky-the-clanker Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

💬 Approved with comments — The CI, Bazel and test changes are consistent. The only finding is an INFO note: the sanitizer and coverage bazelflare configs now build the container and network targets, even though they still skip running those tests.

Findings: 1 info

The decision is advisory: this comment never approves, blocks or requests changes on the pull request.


📋 Code Quality: 💬 1 info

The change is consistent. One INFO note: the sanitizer and coverage configs no longer leave the container image targets out of the build.

Recommendation: 💬 Optional Nits

  • [INFO] The sanitizer and coverage bazelflare configs override only the test tag filters. Since common:bazelflare --build_tag_filters no longer excludes requires-container-engine, bazel build under those configs now also builds the container image targets. (.bazelrc:634)
View full review
  • .bazelrc:634, .bazelrc:657-664: sanitizer and coverage configs.
    • test:bazelflare-asan, test:bazelflare-tsan and coverage:bazelflare-coverage still skip running network and container tests through --test_tag_filters.
    • The shared common:bazelflare --build_tag_filters no longer excludes requires-network or requires-container-engine, though.
    • As a result, bazel build //... with one of those configs will now build the oci_image, oci_load and tarball targets under the sanitizer platforms. This also happens because the no-remote-exec tags on those targets were removed.
    • If that is not intended, add build: tag filters for those configs that keep -requires-container-engine.
  • Checked, no issue:
    • build/wd_test.bzl adds container_images to the runfiles and runs docker load under set -euo pipefail before the sidecar starts.
    • exec_properties.bzl sets test.slots=1 for container tests, and wd_test merges it in.
    • In _bazel.yml, the IPv6 Docker daemon step is still used on the runner fallback path.
  • Minor robustness point. In test.mjs, if //build/config:container_test_images is off, the glob finds no tarballs and no images load. The test would then fail later with a less obvious error.

✅ All other checks passed

🔒 Security: ✅ LGTM

  • Network egress (network=on) applies only to targets tagged requires-network, inside the bazelflare select().
  • The Docker-in-Docker executor is requested only for targets tagged requires-container-engine. That image is defined outside this repository, so its contents were not checked here.
  • The docker load paths come from Bazel and are quoted, and test.mjs calls execFileSync with an argument array, so no shell is involved.

📖 AGENTS.md: ✅ LGTM

No issues found.


⚡ Performance: ✅ LGTM

Each container test now runs docker load on its image tarballs every time it runs. The cost is small and bounded.


📝 Documentation: ✅ LGTM

No issues found.


Reviewed commit: 66b83968

@ask-bonk

ask-bonk Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Author identity unknown

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for runner@runnervmtai0g.dy0dcyvzke5e5dxxzu5nqqj3qb.cx.internal.cloudapp.net) not allowed

github run

2 similar comments
@ask-bonk

ask-bonk Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Author identity unknown

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for runner@runnervmtai0g.dy0dcyvzke5e5dxxzu5nqqj3qb.cx.internal.cloudapp.net) not allowed

github run

@ask-bonk

ask-bonk Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Author identity unknown

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for runner@runnervmtai0g.dy0dcyvzke5e5dxxzu5nqqj3qb.cx.internal.cloudapp.net) not allowed

github run

@ask-bonk

ask-bonk Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

@danlapid Bonk workflow failed. Check the logs for details.

View workflow run · To retry, trigger Bonk again.

danlapid and others added 3 commits October 27, 2026 23:47
Tests tagged requires-network now ask bazelflare for an executor with
egress (`network=on`) rather than being left to the test-linux job's
runner. The sanitizer and coverage configs keep skipping them, as before.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The container tests now depend on their images as `docker load`
tarballs (rules_oci's tarball output group, which builds without a
container engine) and load them before they start, rather than relying
on CI to `bazel run //images:load_all` first. A test then brings its
images to whichever engine it runs beside, including a remote
executor's.

The dependency goes through //build/config:container_test_images, which
workerd's .bazelrc turns on: a build that loads workerd as a plain
repository (edgeworker) doesn't evaluate workerd's MODULE.bazel, so it
has no rules_oci and must not load the images' package.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Tests tagged requires-container-engine now run on bazelflare executors
started from the deployment's image with a Docker engine
(executor-dind, bazelflare-workerd's executor/Dockerfile.dind), one test
per executor, instead of on the test-linux job's runner. That retires
the ci-bazelflare-runner-tests config. The sanitizer and coverage
configs keep skipping them, as before.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@danlapid
danlapid force-pushed the dlapid/bazelflare-all-tests branch from 8510c50 to 66b8396 Compare October 28, 2026 03:54
@danlapid
danlapid enabled auto-merge October 28, 2026 04:07
@danlapid
danlapid merged commit 4df2278 into main Oct 28, 2026
27 checks passed
@danlapid
danlapid deleted the dlapid/bazelflare-all-tests branch October 28, 2026 04:13
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.

2 participants