Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
name: Smoke Test (${{ matrix.os }})
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-slim]
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ubuntu-slim is not a valid GitHub-hosted runner label, and this repo doesn’t appear to use self-hosted runners in workflows. As written, jobs using this matrix entry will fail to start with an unsupported runner label. If the intent is to test a slimmer Linux environment, use a supported runs-on value (e.g., ubuntu-latest/ubuntu-24.04) and run the job inside a container image; if the intent is a self-hosted runner, switch runs-on to an array including self-hosted plus the custom label and ensure such a runner exists.

Suggested change
os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-slim]
os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-24.04]

Copilot uses AI. Check for mistakes.

runs-on: ${{ matrix.os }}

Expand Down
81 changes: 81 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,13 @@ jobs:
version: unstable
credential-type: workload-identity

# ubuntu-slim smoke test
- os: ubuntu-slim
runner-os: Linux
arch: amd64
version: latest
credential-type: oauth


runs-on: ${{ matrix.os }}

Expand All @@ -133,6 +140,7 @@ jobs:
- name: Test Action
id: tailscale-oauth
uses: ./
continue-on-error: true
with:
oauth-client-id: ${{ matrix.credential-type == 'oauth' && secrets.TS_AUTH_KEYS_OAUTH_CLIENT_ID || secrets.TS_WORKLOAD_IDENTITY_CLIENT_ID }}
oauth-secret: ${{ matrix.credential-type == 'oauth' && secrets.TS_AUTH_KEYS_OAUTH_CLIENT_SECRET || '' }}
Expand All @@ -144,6 +152,79 @@ jobs:
retry: 3
ping: "${{ matrix.ping }}"

# Debug steps for ubuntu-slim
- name: Debug - Check tailscaled process
if: matrix.os == 'ubuntu-slim'
run: |
echo "=== Checking for tailscaled process ==="
ps aux | grep tailscale || echo "No tailscaled process found"
echo ""
echo "=== Checking if tailscaled binary exists and permissions ==="
ls -la /usr/local/bin/tailscaled || echo "tailscaled binary not found in /usr/local/bin"
ls -la /usr/bin/tailscaled || echo "tailscaled binary not found in /usr/bin"
ls -la /usr/sbin/tailscaled || echo "tailscaled binary not found in /usr/sbin"
echo ""
echo "=== Checking tailscaled socket ==="
ls -la /var/run/tailscale/tailscaled.sock || echo "Socket not found"
echo ""
echo "=== Attempting to run tailscaled manually to see errors ==="
sudo /usr/local/bin/tailscaled --version || echo "Failed to get version"
echo ""
echo "=== Checking for required dependencies ==="
ldd /usr/local/bin/tailscaled || echo "Failed to check dependencies"
shell: bash

- name: Debug - Check system logs
if: matrix.os == 'ubuntu-slim'
run: |
echo "=== Checking dmesg for tailscale-related errors ==="
dmesg | grep -i tailscale || echo "No tailscale entries in dmesg"
echo ""
echo "=== Checking if journalctl is available ==="
which journalctl && journalctl -xe --no-pager -n 100 | grep -i tailscale || echo "journalctl not available or no tailscale entries"
shell: bash

- name: Debug - Try manual start
if: matrix.os == 'ubuntu-slim'
run: |
echo "=== Attempting to start tailscaled manually ==="
sudo /usr/local/bin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/var/run/tailscale/tailscaled.sock &
TAILSCALED_PID=$!
echo "Started tailscaled with PID: $TAILSCALED_PID"
sleep 2
echo ""
echo "=== Checking if process is still running ==="
ps -p $TAILSCALED_PID || echo "Process $TAILSCALED_PID is not running"
echo ""
echo "=== Checking socket ==="
ls -la /var/run/tailscale/tailscaled.sock || echo "Socket still not created"
echo ""
echo "=== Trying to get status ==="
sudo /usr/local/bin/tailscale status || echo "Failed to get status"
shell: bash

- name: Debug - Check system info
if: matrix.os == 'ubuntu-slim'
run: |
echo "=== System information ==="
uname -a
echo ""
echo "=== Ubuntu version ==="
cat /etc/os-release
echo ""
echo "=== Available shared libraries ==="
ldconfig -p | grep -E "libc|libpthread|libdl|libm" || echo "Failed to check libraries"
echo ""
echo "=== File system capabilities ==="
df -h
echo ""
echo "=== Check /tmp and /var permissions ==="
ls -la /var/run/ | head -20
ls -la /var/lib/ | head -20
shell: bash



# Look up names to make sure MagicDNS is working
- name: Look up qualified name
run: nslookup lax-pve.pineapplefish.ts.net
Expand Down
Loading