Skip to content

configure DNS on macOS runners #16

configure DNS on macOS runners

configure DNS on macOS runners #16

Workflow file for this run

name: "Integration Tests"
on:
pull_request:
workflow_dispatch:
push:
branches:
- main
jobs:
# Matrix test for all supported platforms and architectures
integration-tests:
name: ${{ matrix.os }} (${{ matrix.arch }}) tailscale-${{ matrix.version }}
strategy:
fail-fast: false
matrix:
include:
# # Linux tests (AMD64)
# - os: ubuntu-latest
# runner-os: Linux
# arch: amd64
# version: latest
# ping: 100.99.0.2,lax-pve.pineapplefish.ts.net,lax-pve
# # Try unstable too
# - os: ubuntu-latest
# runner-os: Linux
# arch: amd64
# version: unstable
# # Try a pinned version
# - os: ubuntu-latest
# runner-os: Linux
# arch: amd64
# # leave version blank to fall back to default
# # Linux tests (ARM64)
# - os: ubuntu-24.04-arm
# runner-os: Linux
# arch: arm64
# version: latest
# # Windows tests (AMD64)
# - os: windows-latest
# runner-os: Windows
# arch: amd64
# version: latest
# ping: 100.99.0.2,lax-pve.pineapplefish.ts.net,lax-pve
# - os: windows-latest
# runner-os: Windows
# arch: amd64
# version: unstable
# # Windows tests (ARM64)
# - os: windows-11-arm
# runner-os: Windows
# arch: arm64
# version: latest
# macOS 13 intel
- os: macos-13
runner-os: macOS
arch: amd64
version: latest
ping: 100.99.0.2,lax-pve.pineapplefish.ts.net,lax-pve
# macOS 14 ARM
- os: macos-14
runner-os: macOS
arch: arm64
version: latest
ping: 100.99.0.2,lax-pve.pineapplefish.ts.net,lax-pve
# macOS 15 ARM
- os: macos-15
runner-os: macOS
arch: arm64
version: latest
ping: 100.99.0.2,lax-pve.pineapplefish.ts.net,lax-pve
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: "24"
cache: "npm"
- name: Run ifconfig
run: networksetup -listnetworkserviceorder
- name: See DNS settings
run: networksetup -getdnsservers Ethernet
- name: Install Dependencies
run: npm ci
- name: Build Action
run: npm run build
# Test with OAuth authentication
- name: Test Action
id: tailscale-oauth
uses: ./
with:
oauth-client-id: ${{ secrets.TS_AUTH_KEYS_OAUTH_CLIENT_ID }}
oauth-secret: ${{ secrets.TS_AUTH_KEYS_OAUTH_CLIENT_SECRET }}
tags: "tag:ci"
version: "${{ matrix.version }}"
use-cache: false
timeout: "5m"
retry: 3
ping: "${{ matrix.ping }}"
# Test Tailscale status command
- name: Check Tailscale Status
if: steps.tailscale-oauth.outcome == 'success'
run: |
echo "Testing Tailscale status command..."
if [ "${{ matrix.runner-os }}" == "Windows" ]; then
# Windows uses system-installed binary without sudo
tailscale status
tailscale version
else
# Linux and macOS use system-installed binary with sudo
sudo -E tailscale status
tailscale version
fi
shell: bash