diff --git a/.github/workflows/fleetctl-preview.yml b/.github/workflows/fleetctl-preview.yml new file mode 100644 index 000000000..2e874d4bb --- /dev/null +++ b/.github/workflows/fleetctl-preview.yml @@ -0,0 +1,42 @@ +name: Test fleetctl preview + +on: + workflow_dispatch: # Manual + schedule: + - cron: '0 2 * * *' # Nightly 2AM UTC + +jobs: + test-preview: + timeout-minutes: 60 + strategy: + matrix: + # Doesn't work on Windows because Linux Docker containers are not supported. + os: [ubuntu-20.04, ubuntu-18.04, macos-10.15, macos-11] + runs-on: ${{ matrix.os }} + steps: + - name: Install Docker + # Docker needs to be installed manually on macOS. + if: contains(matrix.os, 'macos') + # From https://github.com/docker/for-mac/issues/2359#issuecomment-943131345 + run: | + brew install --cask docker + sudo /Applications/Docker.app/Contents/MacOS/Docker --unattended --install-privileged-components + open -a /Applications/Docker.app --args --unattended --accept-license + echo "Waiting for Docker to start up..." + while ! /Applications/Docker.app/Contents/Resources/bin/docker info &>/dev/null; do sleep 1; done + echo "Docker is ready." + + - name: Start tunnel + run: | + npm install -g localtunnel + lt --port 1337 & + sleep 5 + + - name: Test fleetctl preview + run: | + npm install -g fleetctl + fleetctl preview + sleep 10 + fleetctl get hosts | tee hosts.txt + [ $( cat hosts.txt | grep online | wc -l) -eq 8 ] + shell: bash