Skip to content

CI: Run a consumer's browser tests against the template under review - #18

Merged
justadreamer merged 1 commit into
mainfrom
ci/consumer-tests
Aug 3, 2026
Merged

CI: Run a consumer's browser tests against the template under review#18
justadreamer merged 1 commit into
mainfrom
ci/consumer-tests

Conversation

@justadreamer

Copy link
Copy Markdown
Contributor

Nothing in this repository can be executed on its own. The templates are consumed as a submodule and rendered into an inline script, so their behaviour is only visible in an SDK that embeds one and drives it in a browser. Until now a change here reached every SDK with no check at all, and was found, if at all, by whichever consumer bumped the submodule first.

The job checks out pipeline-dotnet, copies this revision over the one it pins, and runs FiftyOne.Pipeline.JavaScriptBuilderElementTests - the suite that renders the template through a real pipeline and drives it in headless Chrome.

Verified on a pull request before being split out here: the swap reported 154 insertions(+), 51 deletions(-) against the pinned revision, the runner already has Google Chrome 150 and ChromeDriver 150, and the 52 tests passed in about two minutes.

Notes on the design:

  • pipeline-dotnet is tested at main, which is what a change here has to land against. The workflow_dispatch input points it at a branch for the case where the tests covering a change are still in review themselves.
  • The swap is checked. The templates are embedded resources, so a copy that changed nothing would exercise the pinned revision and report a pass that says nothing about the pull request. That case emits a notice rather than passing silently.
  • No secrets. Every repository involved is public, and Directory.Build.props only asks for the signing key when BuiltOnCI is set, which this does not set.
  • Only pipeline-dotnet is covered. The same templates feed the other language SDKs, and a sibling job per consumer follows the same shape.

Merging this first means the open template pull requests pick the check up on their next push.

Nothing in this repository can be executed on its own: the templates are
consumed as a submodule and rendered into an inline script, so their
behaviour is only visible in an SDK that embeds one and drives it in a
browser. Until now a change here reached every SDK with no check at all
and was found, if at all, by whichever consumer bumped the submodule
first.

The job checks out pipeline-dotnet, copies this revision over the one it
pins, and runs the JavaScript builder tests. It reports when the copy
changed nothing, because the templates are embedded resources and an
unchanged working tree would produce a pass that says nothing about the
pull request.

pipeline-dotnet is tested at main, which is what the change has to land
against. Use the workflow_dispatch input to point it at a branch when the
tests for a change are still in review themselves.
@justadreamer
justadreamer merged commit ec4906e into main Aug 3, 2026
1 check passed
@justadreamer
justadreamer deleted the ci/consumer-tests branch August 3, 2026 13:33
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