Repository navigation
Test hosted mode's dario sidecar for real, against the dario image - #201
Merged
Merged
Conversation
The stubbed tests hold the start step to its docker and curl lines. They cannot show that dario, started with nothing but the file the runner check writes, takes a seat from the lock service's registry and answers /health. sidecar.live.test.mjs runs the step as redline-review.yml has it, with the pinned dario image and a stand-in lock service that holds one made-up seat: the step ends ready, dario read the registry with the lock token, the container is published on loopback only, a wrong key is refused and the run's key lists the one seat. With a token the service refuses, the step fails and shows dario's last lines. No model is called. redline-sidecar-self-test.yml runs it on GitHub's runners, on a pull request that changes the review workflow or the test, weekly and on demand. It is not a required check and not in test-all.mjs.
askalf
marked this pull request as ready for review
November 10, 2026 03:20
sprayberry-redline
approved these changes
Nov 10, 2026
sprayberry-redline
left a comment
Collaborator
There was a problem hiding this comment.
Verdict: approve. The live test exercises the workflow's actual sidecar startup script, checks registry access, loopback publishing and API-key enforcement, and covers startup failure with a refused lock token. The separate workflow uses pinned actions and read-only permissions, and requires Docker rather than silently skipping the test.
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.
What changes, and why
#198 added the dario sidecar to hosted mode and said what it had not tested: a sidecar that reaches a registry and comes up ready. The stubbed tests in
review.test.mjshold the start step to itsdockerandcurllines; they cannot show that dario, started with nothing but the file the runner check writes, takes a seat from a lock service and answers/health.This adds that test and a workflow to run it.
scripts/redline/sidecar.live.test.mjsreads theStart the dario sidecarstep out ofredline-review.ymland runs its shell as written, with realdocker, against the dario image pinned by digest in the test. The test process is the lock service: a small HTTP server that answers/accounts/listwith one made-up seat, everything else with an empty object, and a wrong bearer with 401. The container reaches it on docker's bridge gateway.127.0.0.1:3456only, thatGET /accountsrefuses a key that is not the run's and, with the run's key, lists the one seat. Then, with a lock token the service refuses, that the step fails and prints dario's last lines..github/workflows/redline-sidecar-self-test.ymlruns it onubuntu-latest, on a pull request that changesredline-review.yml, the test or the workflow, weekly, and on demand.REQUIRE_DOCKER=1there makes a missing daemon a failure; without it the test skips, so it is harmless to run by hand on a machine with no docker.It is not a required check and not in
test-all.mjsor thetestjob: it pulls an image and runs a container.The image digest in the test is moved by hand with a dario release. The weekly run is there so an image that no longer pulls, or a dario that no longer starts this way, shows up without a pull request.
How it is tested: run locally with docker against
ghcr.io/askalf/dario@sha256:6826f8f5…: 9 of 9 pass, the step ready in 2 s.node test-all.mjspasses (all 12).actionlint1.7.12 reports nothing on the new workflow. This pull request changes the workflow's own paths, so its first run on a GitHub runner is on this pull request.Callers: no. The test file matches the pin bump's
*.test.mjsexclusion and the workflow is this repository's own, so no caller's pin moves.