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.
This commit is contained in:
Zach Wasserman 2022-01-01 09:24:52 -08:00 committed by GitHub
parent 4a3de40a94
commit ee96418d82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

42
.github/workflows/fleetctl-preview.yml vendored Normal file
View File

@ -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