Repository navigation
ci: Close the gaps in what CI checks - #1472
Closed
marcleblanc2 wants to merge 6 commits into
Closed
marcleblanc2 wants to merge 6 commits into
marcleblanc2 wants to merge 6 commits into
Conversation
marcleblanc2
force-pushed
the
close-ci-check-gaps
branch
from
November 10, 2026 22:26
930ea8a to
04b1c0f
Compare
- db-only-migrate.docker-compose.yaml now extends the pgsql and codeintel-db services in docker-compose.yaml, instead of copying them - CI runs `docker compose config` on every Compose file, combined the way its docs say to run it - executor.docker-compose.yaml declares the sourcegraph network, so the standalone command in its README works on Compose v2 - dev/run.sh uses `docker compose`, like the README Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
- The smoke test compares running containers against the services in docker-compose.yaml, so adding or removing a service needs no test edit - Remove the loop which claimed to watch containers for 5 minutes, but checked them twice, one second apart - Run test/executor-smoke-test.sh after the smoke test Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
… VM profile - Each job fetches the builder key into its own temporary file, and removes it when the job ends - The Docker Hub credentials reach the smoke test as provisioner environment variables, instead of being appended to /root/.profile Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
Same block as release.yaml: a retried finalize finds its own tag, and only a tag on a different commit is an error. Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
The VM image lacks the signing key for its Chrome apt repository, so a full `apt-get update` fails. Amp-Thread-ID: https://ampcode.com/threads/T-01a1c724-4acc-77b0-a43d-b94f22933b8a Co-authored-by: Amp <amp@ampcode.com>
marcleblanc2
force-pushed
the
close-ci-check-gaps
branch
from
November 10, 2026 22:33
04b1c0f to
85bd691
Compare
marcleblanc2
marked this pull request as ready for review
November 10, 2026 22:39
This was referenced Nov 10, 2026
Contributor
Author
|
Closing in favor of #1489, which validates every Compose file and runs shellcheck. The branch stays. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1468. CI passed while checking less than it looked like: it validated one Compose file out of ten, never ran the executor test, and counted containers against a hard-coded 25. This PR closes those gaps.
db-only-migrate.docker-compose.yamlwas a hand-copiedpgsqlandcodeintel-db, with a "MUST be kept in sync" comment. It had drifted: 2g memory instead of 4g, noshm_size, no/confmount, shorter health check and stop grace period.extendsboth services fromdocker-compose.yaml, so it cannot drift.docker-compose configondocker-compose.yamlonly.validate-docker-compose.shrunsdocker compose configon every Compose file, combined the way its docs say to run it: db-only, jaeger, dev, executor (with the base file, and standalone), and eachexamples/*/docker-compose.override.yaml.executors/README.mdfails on Compose v2:service "executor" refers to undefined network sourcegraph.executor.docker-compose.yamldeclares the network.test/executor-smoke-test.shwas never run by CI.smoke-test.sh. The VM image has nojq, so the job installs it withapt-getfirst, from the Ubuntu repositories only: the image lacks the key for its Chrome repository, so a fullapt-get updatefails.smoke-test.shhard-codedexpect_containers="25".docker-compose.yaml, minusmigrator, which exits when it is done./tmp/e2e-builder.json, and never refreshed or removed it.mktempfile, and removes it when the job ends./root/.profileon the VM.batch-change/release.yamlstill had the baregit tag, which fails when a finalize job is retried.release.yaml.:bash:step runsshellcheckon every*.shand the Buildkite hook.shellcheck 0.11.0is added to.tool-versions.dev/run.shuseddocker-compose; the README usesdocker compose.docker compose.Things to know
db-only-migrate.docker-compose.yamlnow get the samepgsqlandcodeintel-dbas the full deployment:mem_limit4g (was 2g),shm_size1g, the../<db>/conf:/conf/mount, health checkretries: 10andstart_period: 1h(was 3 and 15s),stop_grace_period: 120s.extendsworks on Compose 1.29.2, 2.18.1, 2.24.1, and 5.7.0. The release tooling skips services without animage:key, so it leaves the file alone.docker compose(the plugin) on the Buildkite agent, and prints its version: 2.18.1. That version accepts the!overrideand!resettags in three examples (aws-alb,aws-rds-databases,external-databases), but ignores them. So CI checks that those examples parse, not that the merged result is what a customer on a current Compose gets. Compose 2.24.1 rejects!override; 5.7.0 handles both tags.executor.docker-compose.yamlpinsexecutor:6.0.0, while every other image is 8.1.x. The release tooling has not been updating it. It still registers with the 8.1 frontend in CI. Not changed here.docker login. The Vagrantfile change removes a second copy and nine lines; it does not make the VM hold fewer secrets.smoke-test.shkeeps usingdocker-compose(v1), because that is what the VM image ships.Not in this PR
--config-from-commitalready fails closed.catch_errorsinsmoke-test.shlists containers withdocker ps, which hides exited containers. Adding--allwould flagmigrator, which is meant to exit.Checklist
Test plan
docker compose configon every file and combination in the new validation script, with Compose 5.7.0 (all pass), 2.24.1 (fails only the two!overrideexamples), and 2.18.1 (all pass)pgsqlandcodeintel-dbfrom the db-only file and fromdocker-compose.yamlon Compose 1.29.2, 2.18.1, 2.24.1, and 5.7.0: identical on eachdocker-compose config --serviceson 1.29.2 lists 25 services other thanmigrator, the number the test used to hard-code.buildkite/vagrant-run.shagainst stubbedvagrant,gcloud, andcurl: the key file is removed in every case; the test's exit code is kept; a rejected delete request falls back tovagrant destroy; a failedvagrant destroyfails the jobshellcheck0.11.0 is clean on every script;ruby -c test/Vagrantfile; every edited YAML file parsesgit:tagblocks inrelease.yamlandbatch-change/release.yamlare identicaldocker compose configcalls;shellcheck, installed bymisefrom.tool-versions;Login Succeededwith the credentials passed as provisioner environment variables; 25 running containers against 25 expected;jqinstalled; the executor registered after 10s. The smoke test job took about 290s, executor test includedapt-get update, which is why the install skips/etc/apt/sources.list.d