Skip to content

dist: Ship siso and cipd CLIs with -help smoke tests#30

Merged
afq984 merged 1 commit into
google:mainfrom
afq984:push-rqyuzuwnwrqq
Apr 29, 2026
Merged

dist: Ship siso and cipd CLIs with -help smoke tests#30
afq984 merged 1 commit into
google:mainfrom
afq984:push-rqyuzuwnwrqq

Conversation

@afq984
Copy link
Copy Markdown
Collaborator

@afq984 afq984 commented Apr 29, 2026

Adds the upstream siso and cipd binaries to //dist so the sandbox can run siso proxy and cipd proxy outside the jail and expose unix sockets inside, letting in-jail Chrome/Android dev tooling reach RBE / fetch CIPD packages without host credentials or network egress.

Both binaries are built from source via rules_go from upstream module versions (siso v1.5.3, luci pinned by pseudo-version) so go.sum hash-locks the entire dep closure. Build wiring:

  • bump go_sdk download 1.24.12 → 1.25.7 (siso v1.5.3 needs go ≥ 1.25.7)
  • bump go.mod go directive accordingly
  • add tools.go (build tag tools) so go mod tidy walks the full siso and cipd CLI dep graph, anchoring transitive deps in go.mod
  • gazelle_default_attributes(build_file_generation=clean, proto disable_global) so gazelle regenerates BUILD files for every external module and skips proto-rule generation; without this the hand-written BUILD files in luci-go / remote-apis / reclient/api reference @rules_go and @rules_proto via names that aren't visible in our bzlmod context
  • pkg_files in //dist:binaries gains the two new go_binary targets

Smoke tests: dist/dist_test.go's helpSmokeTest extracts the dist tarball and runs <bin> help [-advanced], asserting the output mentions proxy. Catches packaging regressions (missing/wrong-arch binary, dynamic-link breakage) cheaply, without exercising any network path.

Adds the upstream siso and cipd binaries to //dist so the sandbox can run
`siso proxy` and `cipd proxy` outside the jail and expose unix sockets
inside, letting in-jail Chrome/Android dev tooling reach RBE / fetch CIPD
packages without host credentials or network egress.

Both binaries are built from source via rules_go from upstream module
versions (siso v1.5.3, luci pinned by pseudo-version) so go.sum hash-locks
the entire dep closure. Build wiring:

- bump go_sdk download 1.24.12 → 1.25.7 (siso v1.5.3 needs go ≥ 1.25.7)
- bump go.mod `go` directive accordingly
- add tools.go (build tag `tools`) so `go mod tidy` walks the full siso
  and cipd CLI dep graph, anchoring transitive deps in go.mod
- gazelle_default_attributes(build_file_generation=clean,
  proto disable_global) so gazelle regenerates BUILD files for every
  external module and skips proto-rule generation; without this the
  hand-written BUILD files in luci-go / remote-apis / reclient/api
  reference @rules_go and @rules_proto via names that aren't visible in
  our bzlmod context
- pkg_files in //dist:binaries gains the two new go_binary targets

Smoke tests: dist/dist_test.go's helpSmokeTest extracts the dist tarball
and runs `<bin> help [-advanced]`, asserting the output mentions `proxy`.
Catches packaging regressions (missing/wrong-arch binary, dynamic-link
breakage) cheaply, without exercising any network path.
@afq984 afq984 force-pushed the push-rqyuzuwnwrqq branch from acb29a3 to d2168db Compare April 29, 2026 07:38
@afq984 afq984 merged commit 62d7140 into google:main Apr 29, 2026
3 checks passed
@afq984 afq984 deleted the push-rqyuzuwnwrqq branch April 29, 2026 08:03
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