From ee96418d82544fce3f4cc03801b8c99a425f04f8 Mon Sep 17 00:00:00 2001 From: Zach Wasserman Date: Sat, 1 Jan 2022 09:24:52 -0800 Subject: [PATCH] Add integration test for fleetctl preview (#3545) Add nightly and manual job to run `fleetctl preview` and check for enrolled hosts. Works on macOS and Linux. Windows cannot be tested on GitHub Actions due to lack of Docker Linux support. --- .github/workflows/fleetctl-preview.yml | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/fleetctl-preview.yml 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