Skip to content

ci: Check every Compose file and shell script, and test Jaeger and the executor - #1489

Open
marcleblanc2 wants to merge 3 commits into
marc/smoke-test-wait-for-healthfrom
marc/ci-check-compose-shell-jaeger-executor
Open

marcleblanc2 wants to merge 3 commits into
marc/smoke-test-wait-for-healthfrom
marc/ci-check-compose-shell-jaeger-executor

Conversation

@marcleblanc2

@marcleblanc2 marcleblanc2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Closes three gaps in CI: it validated only the base Compose file, did not lint the shell scripts, and never deployed Jaeger or the executor.

  • Validates every Compose file, in each combination the docs tell customers to run: db-only, Jaeger, dev, the executor (with the base file, and alone), every example override, and the combination the smoke test starts.
  • Runs shellcheck on every *.sh file and the Buildkite hook. shellcheck 0.11.0 goes in .tool-versions, which is now sorted by name.
  • Deploys Jaeger and the executor in the smoke test. smoke-test.sh starts the base file with jaeger/ and executors/, and checks that the Jaeger UI answers. Then executor-smoke-test.sh, which CI never ran, checks that the executor registers and serves exactly the queues batches, batches-hooks, and codeintel.
  • Adds all three to AGENTS.md.

What the new checks found

  • executor.docker-compose.yaml failed when run alone, as executors/README.md describes: service "executor" refers to undefined network sourcegraph. It now declares the network. This is the only change customers can see.
  • dev/run.sh and its README called docker-compose (v1). They now use docker compose.
  • .buildkite/vagrant-run.sh assigned and exported DOCKER_PASSWORD in one statement, which hides a failed gcloud call (SC2155).

Risk: low. CI and dev tooling, plus the network declaration above.

Things to know

  • The CI agent has Compose 2.18.1, which accepts the !override and !reset tags in three examples but ignores them. For those three, CI checks that the file parses, not that the merged result is right.
  • The VM installs jq before the executor test, because the VM image lacks it.
  • Not covered: traces reaching Jaeger, and the executor running a job.

Checklist

  • All images have a valid tag and SHA256 sum (no image changes)

Test plan

  • Build 16953 passed: the Compose step, the shellcheck step, and both tests ran. The smoke test log has Executor serves the queues batches,batches-hooks,codeintel and EXECUTOR SMOKE TEST PASSED
  • Every command in validate-docker-compose.sh passes on Compose 2.18.1 and 5.7.1
  • The queue check, with stub curl and docker commands: three queues pass in any order; two, four, or none fail and print the names found; no executor fails after 120 seconds

Closes FE-589

@marcleblanc2
marcleblanc2 added this pull request to stack #1491 November 11, 2026 10:45
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch 2 times, most recently from 8b6381c to a122ad8 Compare November 11, 2026 23:45
@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch from a122ad8 to 2304672 Compare November 12, 2026 04:05
@marcleblanc2
marcleblanc2 removed this pull request from stack #1491 November 12, 2026 22:27
@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch from 0614d78 to db4754c Compare November 12, 2026 22:27
@marcleblanc2
marcleblanc2 added this pull request to stack #1498 November 12, 2026 22:27
@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch from db4754c to c972cd2 Compare November 12, 2026 22:56
@marcleblanc2
marcleblanc2 removed this pull request from stack #1498 November 13, 2026 04:58
@marcleblanc2
marcleblanc2 changed the base branch from marc/smoke-test-vm-gcloud to main November 13, 2026 04:58
@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch from c972cd2 to dd24b60 Compare November 13, 2026 04:58
@marcleblanc2
marcleblanc2 changed the base branch from main to marc/smoke-test-wait-for-health November 13, 2026 04:58
@marcleblanc2
marcleblanc2 added this pull request to stack #1504 November 13, 2026 04:58
@marcleblanc2
marcleblanc2 marked this pull request as ready for review November 13, 2026 05:36
@marcleblanc2
marcleblanc2 requested a review from a team November 13, 2026 05:37
@marcleblanc2
marcleblanc2 enabled stacked auto-merge (squash) November 13, 2026 05:40
marcleblanc2 added a commit that referenced this pull request Nov 13, 2026
…ot read

Widens the if_changed exclude list from Markdown to the files the smoke test never reads: GitHub and editor settings, release manifests, Prettier inputs, the Compose files it does not start, and the Caddyfiles the base file leaves commented out. New files still run the smoke test.

The executor and Jaeger Compose files and test/executor-smoke-test.sh stay off the list, because #1489 adds them to the smoke test.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a1d3ba-ceb2-7220-8dc4-46d20882d955
stacked auto-merge was automatically disabled November 13, 2026 07:29

Auto-merge was disabled for another pull request in the stack

@marcleblanc2
marcleblanc2 force-pushed the marc/ci-check-compose-shell-jaeger-executor branch from dd24b60 to 4706f1b Compare November 13, 2026 07:40
…e executor

Validates every Compose file in the combinations the docs give, runs shellcheck on every shell script, and deploys Jaeger and the executor in the smoke test. The VM now runs test/executor-smoke-test.sh after test/smoke-test.sh.

Declares the sourcegraph network in executor.docker-compose.yaml, which the standalone command in its README needs, and switches dev/run.sh to docker compose. Fixes the one shellcheck warning, in vagrant-run.sh.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1c7a5-6b65-723b-980c-b85e1e9008b5
Co-authored-by: Amp <amp@ampcode.com>
marcleblanc2 and others added 2 commits November 13, 2026 01:50
Sets EXECUTOR_QUEUE_NAMES to batches, batches-hooks, and codeintel, instead of EXECUTOR_QUEUE_NAME to batches. EXECUTOR_QUEUE_NAME takes one queue, and the executor refuses to start when both variables are set, so the override leaves the base file's empty EXECUTOR_QUEUE_NAME alone.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a1c7a5-6b65-723b-980c-b85e1e9008b5
The executor smoke test passed as soon as any executor registered. It
now also fails unless an executor serves exactly the three queues which
test/docker-compose.override.yaml sets: batches, batches-hooks, and
codeintel.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1c7a5-6b65-723b-980c-b85e1e9008b5
Co-authored-by: Amp <amp@ampcode.com>
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