dashboard/cypress/jenkins/init.sh

149 lines
5.6 KiB
Bash
Executable File

#!/bin/bash
set -x
set -e
OS="$(uname -s)"
case "${OS}" in
Linux*) MACHINE=amd64;;
Darwin*) MACHINE=darwin-amd64;;
esac
case "${MACHINE}" in
amd64*) GOLANG_PGK_SUFFIX=linux-amd64 ;;
darwin-amd64*) GOLANG_PGK_SUFFIX=darwin-amd64 ;;
esac
GO_DL_URL="https://go.dev/dl"
GO_DL_VERSION="${GO_DL_VERSION:-1.20.5}"
GO_PKG_FILENAME="go${GO_DL_VERSION}.${GOLANG_PGK_SUFFIX}.tar.gz"
GO_DL_PACKAGE="${GO_DL_URL}/${GO_PKG_FILENAME}"
CORRAL_PATH="${WORKSPACE}/bin"
CORRAL="${CORRAL_PATH}/corral"
CORRAL_VERSION="${CORRAL_VERSION:-1.1.1}"
CORRAL_DOWNLOAD_URL="https://github.com/rancherlabs/corral/releases/download/"
CORRAL_DOWNLOAD_BIN="${CORRAL_DOWNLOAD_URL}v${CORRAL_VERSION}/corral-${CORRAL_VERSION}-${MACHINE}"
PATH="${CORRAL_PATH}:${PATH}"
CORRAL_PACKAGES_REPO="${CORRAL_PACKAGES_REPO:-rancherlabs/corral-packages.git}"
CORRAL_PACKAGES_BRANCH="${CORRAL_PACKAGES_BRANCH:-main}"
DASHBOARD_REPO="${DASHBOARD_REPO:-rancher/dashboard.git}"
DASHBOARD_BRANCH="${DASHBOARD_BRANCH:-master}"
GITHUB_URL="https://github.com/"
RANCHER_TYPE="${RANCHER_TYPE:-local}"
NODEJS_VERSION="${NODEJS_VERSION:-14.19.1}"
CYPRESS_VERSION="${CYPRESS_VERSION:-13.2.0}"
YARN_VERSION="${YARN_VERSION:-1.22.19}"
YQ_BIN="mikefarah/yq/releases/latest/download/yq_linux_amd64"
mkdir -p "${WORKSPACE}/bin"
wget "${GITHUB_URL}${YQ_BIN}" -O "${WORKSPACE}/bin/yq"
chmod +x "${WORKSPACE}/bin/yq"
if [ -f "${CORRAL}" ]; then rm "${CORRAL}"; fi
curl -L -o "${CORRAL}" "${CORRAL_DOWNLOAD_BIN}"
chmod +x "${CORRAL}"
curl -L -o "${GO_PKG_FILENAME}" "${GO_DL_PACKAGE}"
tar -C "${WORKSPACE}" -xzf "${GO_PKG_FILENAME}"
ls -al "${WORKSPACE}"
export PATH=$PATH:"${WORKSPACE}/go/bin:${WORKSPACE}/bin"
echo $PATH
go version
if [[ ! -d "${WORKSPACE}/.ssh" ]]; then mkdir -p "${WORKSPACE}/.ssh"; fi
export PRIV_KEY="${WORKSPACE}/.ssh/jenkins_ecdsa"
if [ -f "${PRIV_KEY}" ]; then rm "${PRIV_KEY}"; fi
ssh-keygen -t ecdsa -b 521 -N "" -f "${PRIV_KEY}"
ls -al "${WORKSPACE}/.ssh/"
corral config --public_key "${PRIV_KEY}.pub" --user_id jenkins
corral config vars set corral_user_public_key "$(cat ${PRIV_KEY}.pub)"
corral config vars set corral_user_id jenkins
corral config vars set aws_ssh_user ${AWS_SSH_USER}
corral config vars set aws_access_key ${AWS_ACCESS_KEY_ID}
corral config vars set aws_secret_key ${AWS_SECRET_ACCESS_KEY}
corral config vars set aws_ami ${AWS_AMI}
corral config vars set aws_region ${AWS_REGION}
corral config vars set aws_security_group ${AWS_SECURITY_GROUP}
corral config vars set aws_subnet ${AWS_SUBNET}
corral config vars set aws_vpc ${AWS_VPC}
corral config vars set aws_volume_size ${AWS_VOLUME_SIZE}
corral config vars set aws_volume_type ${AWS_VOLUME_TYPE}
corral config vars set volume_type ${AWS_VOLUME_TYPE}
corral config vars set volume_iops ${AWS_VOLUME_IOPS}
if [[ "${JOB_TYPE}" == "recurring" ]]; then
RANCHER_TYPE="recurring"
cd "${WORKSPACE}/corral-packages"
yq -i e ".variables.rancher_version += [\"${RANCHER_VERSION}\"] | .variables.rancher_version style=\"literal\"" packages/aws/rancher.yaml
yq -i e ".variables.kubernetes_version += [\"${RKE2_KUBERNETES_VERSION}\"] | .variables.kubernetes_version style=\"literal\"" packages/aws/rancher.yaml
yq -i e ".variables.cert_manager_version += [\"${CERT_MANAGER_VERSION}\"] | .variables.kubernetes_version style=\"literal\"" packages/aws/rancher.yaml
cat packages/aws/rancher.yaml
ls -al packages/aws/
cat packages/aws/dashboard-tests.yaml
prefix_random=$(cat /dev/urandom | env LC_ALL=C tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
corral config vars set bootstrap_password ${BOOTSTRAP_PASSWORD:-password}
corral config vars set aws_route53_zone ${AWS_ROUTE53_ZONE}
if [[ -n "${RANCHER_IMAGE_TAG}" ]]; then
corral config vars set rancher_image_tag ${RANCHER_IMAGE_TAG}
fi
corral config vars set server_count ${SERVER_COUNT:-3}
corral config vars set agent_count ${AGENT_COUNT:-0}
corral config vars set instance_type ${AWS_INSTANCE_TYPE}
corral config vars set aws_hostname_prefix "jenkins-${prefix_random}"
corral config vars delete rancher_host
RANCHER_HOST="jenkins-${prefix_random}.${AWS_ROUTE53_ZONE}"
RKE2_KUBERNETES_VERSION="${RKE2_KUBERNETES_VERSION//+/-}"
make init
make build
ls -al dist
echo "Corral Package string: ${RKE2_KUBERNETES_VERSION}-${RANCHER_VERSION//v}-${CERT_MANAGER_VERSION}"
corral create --skip-cleanup --recreate --debug rancher \
"dist/aws-rke2-rancher-calico-${RKE2_KUBERNETES_VERSION}-${RANCHER_VERSION//v}-${CERT_MANAGER_VERSION}"
fi
corral config vars set rancher_type ${RANCHER_TYPE}
corral config vars set nodejs_version ${NODEJS_VERSION}
corral config vars set dashboard_repo ${DASHBOARD_REPO}
corral config vars set dashboard_branch ${DASHBOARD_BRANCH}
corral config vars set cypress_tags ${CYPRESS_TAGS}
corral config vars set cypress_version ${CYPRESS_VERSION}
corral config vars set yarn_version ${YARN_VERSION}
if [[ -n "${RANCHER_USERNAME}" ]]; then
corral config vars set rancher_username ${RANCHER_USERNAME}
fi
if [[ -n "${RANCHER_PASSWORD}" ]]; then
corral config vars set rancher_password ${RANCHER_PASSWORD}
fi
if [[ -n "${RANCHER_HOST}" ]]; then
corral config vars set rancher_host ${RANCHER_HOST}
fi
if [[ -n "${CHROME_VERSION}" ]]; then
corral config vars set chrome_version ${CHROME_VERSION}
fi
cd "${WORKSPACE}/corral-packages"
make init
make build
echo "${PWD}"
chmod -R 766 "${WORKSPACE}/corral-packages"
corral config vars set node_count 1
corral config vars set bastion_ip ""
corral config vars delete instance_type
corral create --skip-cleanup --recreate --debug ci dist/aws-dashboard-tests-t3a.xlarge
corral config vars -o yaml
NODE_EXTERNAL_IP="$(corral vars ci first_node_ip)"
cd ${WORKSPACE}
echo "${PWD}"