|
|
@@ -0,0 +1,102 @@
|
|
|
+name: test installer.sh
|
|
|
+
|
|
|
+on:
|
|
|
+ push:
|
|
|
+ branches:
|
|
|
+ - "main"
|
|
|
+ paths:
|
|
|
+ - scripts/installer.sh
|
|
|
+ pull_request:
|
|
|
+ branches:
|
|
|
+ - "*"
|
|
|
+ paths:
|
|
|
+ - scripts/installer.sh
|
|
|
+
|
|
|
+jobs:
|
|
|
+ test:
|
|
|
+ strategy:
|
|
|
+ # Don't abort the entire matrix if one element fails.
|
|
|
+ fail-fast: false
|
|
|
+ # Don't start all of these at once, which could saturate Github workers.
|
|
|
+ max-parallel: 4
|
|
|
+ matrix:
|
|
|
+ image:
|
|
|
+ # This is a list of Docker images against which we test our installer.
|
|
|
+ # If you find that some of these no longer exist, please feel free
|
|
|
+ # to remove them from the list.
|
|
|
+ # When adding new images, please only use official ones.
|
|
|
+ - "debian:oldstable-slim"
|
|
|
+ - "debian:stable-slim"
|
|
|
+ - "debian:testing-slim"
|
|
|
+ - "debian:sid-slim"
|
|
|
+ - "ubuntu:18.04"
|
|
|
+ - "ubuntu:20.04"
|
|
|
+ - "ubuntu:22.04"
|
|
|
+ - "ubuntu:22.10"
|
|
|
+ - "ubuntu:23.04"
|
|
|
+ - "elementary/docker:stable"
|
|
|
+ - "elementary/docker:unstable"
|
|
|
+ - "parrotsec/core:lts-amd64"
|
|
|
+ - "parrotsec/core:latest"
|
|
|
+ - "kalilinux/kali-rolling"
|
|
|
+ - "kalilinux/kali-dev"
|
|
|
+ - "oraclelinux:9"
|
|
|
+ - "oraclelinux:8"
|
|
|
+ - "fedora:latest"
|
|
|
+ - "rockylinux:8.7"
|
|
|
+ - "rockylinux:9"
|
|
|
+ - "amazonlinux:latest"
|
|
|
+ - "opensuse/leap:latest"
|
|
|
+ - "opensuse/tumbleweed:latest"
|
|
|
+ - "archlinux:latest"
|
|
|
+ - "alpine:3.14"
|
|
|
+ - "alpine:latest"
|
|
|
+ - "alpine:edge"
|
|
|
+ deps:
|
|
|
+ # Run all images installing curl as a dependency.
|
|
|
+ - curl
|
|
|
+ include:
|
|
|
+ # Check a few images with wget rather than curl.
|
|
|
+ - { image: "debian:oldstable-slim", deps: "wget" }
|
|
|
+ - { image: "debian:sid-slim", deps: "wget" }
|
|
|
+ - { image: "ubuntu:23.04", deps: "wget" }
|
|
|
+ # Ubuntu 16.04 also needs apt-transport-https installed.
|
|
|
+ - { image: "ubuntu:16.04", deps: "curl apt-transport-https" }
|
|
|
+ - { image: "ubuntu:16.04", deps: "wget apt-transport-https" }
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ container:
|
|
|
+ image: ${{ matrix.image }}
|
|
|
+ options: --user root
|
|
|
+ steps:
|
|
|
+ - name: install dependencies (yum)
|
|
|
+ # tar and gzip are needed by the actions/checkout below.
|
|
|
+ run: yum install -y --allowerasing tar gzip ${{ matrix.deps }}
|
|
|
+ if: |
|
|
|
+ contains(matrix.image, 'centos')
|
|
|
+ || contains(matrix.image, 'oraclelinux')
|
|
|
+ || contains(matrix.image, 'fedora')
|
|
|
+ || contains(matrix.image, 'amazonlinux')
|
|
|
+ - name: install dependencies (zypper)
|
|
|
+ # tar and gzip are needed by the actions/checkout below.
|
|
|
+ run: zypper --non-interactive install tar gzip
|
|
|
+ if: contains(matrix.image, 'opensuse')
|
|
|
+ - name: install dependencies (apt-get)
|
|
|
+ run: |
|
|
|
+ apt-get update
|
|
|
+ apt-get install -y ${{ matrix.deps }}
|
|
|
+ if: |
|
|
|
+ contains(matrix.image, 'debian')
|
|
|
+ || contains(matrix.image, 'ubuntu')
|
|
|
+ || contains(matrix.image, 'elementary')
|
|
|
+ || contains(matrix.image, 'parrotsec')
|
|
|
+ || contains(matrix.image, 'kalilinux')
|
|
|
+ - name: checkout
|
|
|
+ uses: actions/checkout@v3
|
|
|
+ - name: run installer
|
|
|
+ run: scripts/installer.sh
|
|
|
+ # Package installation can fail in docker because systemd is not running
|
|
|
+ # as PID 1, so ignore errors at this step. The real check is the
|
|
|
+ # `tailscale --version` command below.
|
|
|
+ continue-on-error: true
|
|
|
+ - name: check tailscale version
|
|
|
+ run: tailscale --version
|