# Run the ssh integration tests in various Docker containers. # These tests can also be run locally via `make sshintegrationtest`. name: "ssh-integrationtest" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true on: pull_request: paths: - "ssh/**" - "tempfork/gliderlabs/ssh/**" - ".github/workflows/ssh-integrationtest" jobs: ssh-integrationtest: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - base: "ubuntu:focal" tag: "ssh-ubuntu-focal" - base: "ubuntu:jammy" tag: "ssh-ubuntu-jammy" - base: "ubuntu:noble" tag: "ssh-ubuntu-noble" - base: "alpine:latest" tag: "ssh-alpine-latest" steps: - name: Check out code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Build test binaries run: | GOOS=linux GOARCH=amd64 CGO_ENABLED=0 ./tool/go test -tags integrationtest -c ./ssh/tailssh -o ssh/tailssh/testcontainers/tailssh.test GOOS=linux GOARCH=amd64 CGO_ENABLED=0 ./tool/go build -o ssh/tailssh/testcontainers/tailscaled ./cmd/tailscaled - name: Run SSH integration tests (${{ matrix.base }}) run: | docker build --build-arg="BASE=${{ matrix.base }}" -t "${{ matrix.tag }}" ssh/tailssh/testcontainers