#!/bin/bash

set -evx

ELEMENTAL_ISO="/home/gh-runner/actions-runner/_work/elemental/elemental/elemental-from-cypress.iso"

# Start a simple HTTP server for sharing some config files
HTTP_SRV_CMD="python3 -m http.server"
pushd ..
setsid --fork ${HTTP_SRV_CMD} >/dev/null 2>&1
popd

pushd cypress/latest

# Needed to install Cypress plugins
npm install

# Start Cypress tests with docker
docker run -v $PWD:/workdir -w /workdir                     \
    -e CYPRESS_TAGS=$CYPRESS_TAGS                           \
    -e ELEMENTAL_UI_VERSION=$ELEMENTAL_UI_VERSION           \
    -e CHARTMUSEUM_REPO=$CHARTMUSEUM_REPO                   \
    -e K8S_UPSTREAM_VERSION=$K8S_UPSTREAM_VERSION           \
    -e K8S_VERSION_TO_PROVISION=$K8S_VERSION_TO_PROVISION   \
    -e OPERATOR_REPO=$OPERATOR_REPO                         \
    -e PROXY=$PROXY                                         \
    -e QASE_API_TOKEN=$QASE_API_TOKEN                       \
    -e QASE_REPORT=1                                        \
    -e QASE_RUN_ID=$QASE_RUN_ID                             \
    -e RANCHER_VERSION=$RANCHER_VERSION                     \
    -e RANCHER_PASSWORD=$RANCHER_PASSWORD                   \
    -e RANCHER_URL=$RANCHER_URL                             \
    -e RANCHER_USER=$RANCHER_USER                           \
    -e UI_ACCOUNT=$UI_ACCOUNT                               \
    -e UPGRADE_IMAGE=$UPGRADE_IMAGE                         \
    -e UPGRADE_OS_CHANNEL=$UPGRADE_OS_CHANNEL               \
    --add-host host.docker.internal:host-gateway            \
    --ipc=host                                              \
    $CYPRESS_DOCKER                                         \
    -s $SPEC

[[ -d downloads ]] && sudo chown -R gh-runner:users downloads videos

if [[ ! -f ${ELEMENTAL_ISO} ]]; then
  # Move elemental.iso into the expected folder
  mv downloads/*.iso ${ELEMENTAL_ISO}
fi
popd

# Kill the HTTP server
pkill -f "${HTTP_SRV_CMD}"
