mirror of
https://github.com/tailscale/tailscale.git
synced 2026-05-05 20:26:47 +02:00
The macos-ssh-integrationtest job was failing in under a second with no usable log output, and the job's two test steps were sequenced so a failure in the first skipped the second. Make both deficiencies go away. Preflight diagnostics step dumps uname, sw_vers, id, id runner, ssh -V, dscl . -read /Users/runner UserShell, /etc/ssh listing, sudo capability, and PATH. This is the environment context every future failure on this runner will need to debug, captured before the test binary even runs. PATH propagation through sudo is now an explicit, expanded list (/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH) instead of inheriting the GitHub Actions PATH, which doesn't always include /usr/sbin where macOS keeps utilities the incubator may invoke. Both test steps now use continue-on-error: true with id-tagged outcomes, and a final aggregator step fails the job if either was not 'success'. Previously a failure in the OpenSSH step skipped the Go SSH step entirely; we lost half the signal on every failed run. Test output is tee'd to /tmp/openssh-exitcodes.log and /tmp/gossh-exitcodes.log. The incubator log /tmp/tailscalessh.log is sudo-copied (it's owned by root after sudo) and made readable. All three are uploaded as a macos-ssh-integrationtest-logs artifact retained 14 days. actions/upload-artifact pinned to v7.0.0 to match the rest of the repo. The per-step timeout is bumped from 3m to 5m to give the in-test retry logic (up to 3 attempts) headroom without hitting the workflow timeout before the final attempt completes. Updates #18256 Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>