Add an install type homebrew for OS X runners#290
Conversation
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
There was a problem hiding this comment.
Pull request overview
Adds a Homebrew-based install path for macOS runners, with CI coverage to exercise both the Homebrew and “build from source” fallback flows.
Changes:
- Add macOS install logic that prefers Homebrew when available and matches the requested version; otherwise fall back to building from source.
- Start
tailscaledviabrew serviceswhen installed with Homebrew and skip caching for Homebrew-managed installs. - Add smoke/unit-style tests and update workflows to exercise both macOS install types and run local smoke tests in CI.
Reviewed changes
Copilot reviewed 5 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
src/main.ts |
Implements Homebrew availability/version checks, Homebrew install path, and Homebrew service start logic; adjusts install return type for downstream decisions (cache/start). |
test/macos-homebrew.test.js |
Adds source/bundle string-match tests to assert the Homebrew logic is present in src/main.ts and the bundled action. |
package.json |
Adds test and test:smoke scripts (build + Node test runner). |
.github/workflows/test.yml |
Extends matrix with an explicit install-type and adds steps to resolve the Homebrew formula version / force the source path; verifies the chosen path. |
.github/workflows/smoke-test.yml |
Runs npm test (build + local smoke tests) instead of only building. |
dist/logout/index.js |
Re-bundled output update (generated artifact). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
| CurrentTailnet: tailnetInfo; | ||
| }; | ||
|
|
||
| type installMethod = "brew" | "cache" | "source"; |
There was a problem hiding this comment.
Nit: can we add an install method of "packages" or similar for things that are fetched from pkgs.tailscale.com? A bit pedantic since we don't do anything different for these, but feels incorrect to have them classified as "source"
There was a problem hiding this comment.
We could, but in this case it wouldn't be accurate because brew doesn't pull from pkgs
Signed-off-by: Lee Briggs lee@leebriggs.co.uk