mirror of
https://github.com/tailscale/github-action.git
synced 2026-08-20 10:49:23 +00:00
The new argument `ping` allows users to specify a comma-seperated list of hosts (IP or hostname) to ping in order to verify connectivity. Ping is considered successful as soon as the peer is reachable either directly or via DERP. Updates tailscale/corp#32817 Signed-off-by: Percy Wegmann <percy@tailscale.com>
122 lines
No EOL
3.2 KiB
YAML
122 lines
No EOL
3.2 KiB
YAML
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
|
|
version: 1.82.0
|
|
|
|
# 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 intel
|
|
- os: macos-13
|
|
runner-os: macOS
|
|
arch: amd64
|
|
version: latest
|
|
ping: 100.99.0.2 # hostnames aren't resolving on MacOS, just ping IP lax-pve.pineapplefish.ts.net,lax-pve
|
|
|
|
# macOS ARM
|
|
- os: macos-14
|
|
runner-os: macOS
|
|
arch: arm64
|
|
version: latest
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
cache: 'npm'
|
|
|
|
- name: Install Dependencies
|
|
run: npm ci
|
|
|
|
- name: Build Action
|
|
run: npm run build
|
|
|
|
# Test with OAuth authentication
|
|
- name: Test Tailscale Setup (OAuth)
|
|
id: tailscale-oauth
|
|
uses: ./
|
|
with:
|
|
oauth-client-id: ${{ secrets.TS_AUTH_KEYS_OAUTH_CLIENT_ID }}
|
|
oauth-client-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
|
|
|