#!/bin/bash set -e # expected ENV VAR “KB_AUTH_TOKEN”

SCRIPT_DIR=`dirname “$(realpath -s ”$0“)”` # app_dir/.kubernetes/ cd “$SCRIPT_DIR/../” # project directory

DEPLOYMENTS=“<%=[deployment.job_name, deployment.name].join(',')%>” IMAGE_NAME=“<%=continuous_deployment.image_name%>” CLUSTER_NAME=“<%=continuous_deployment.cluster_name%>” PROJECT_NAME=“<%=continuous_deployment.project_name%>” CLUSTER_REGION=“<%=continuous_deployment.cluster_region%>” DOCKER_BUILD_CMD=“<%=continuous_deployment.docker_build_cmd || 'build -f Dockerfile'%>”

CI_COMMIT_SHA=$(git rev-parse –verify HEAD || :) CI_COMMIT_SHA=${CI_COMMIT_SHA:-$(date +%s) } DEPLOY_NAME=“${IMAGE_NAME}:${CI_COMMIT_SHA}” LATEST_NAME=“${IMAGE_NAME}:latest”

if [ ! -z “$KB_AUTH_TOKEN” ] then

AUTH_PATH="$SCRIPT_DIR/k8s-auth-token.json"
rm -f -- $AUTH_PATH
echo $KB_AUTH_TOKEN >> $AUTH_PATH

## ***** GOOGLE CONNECTOR
# Download and install Google Cloud SDK
if [ -z "$(which gcloud)" ]; then
  export CLOUDSDK_CORE_DISABLE_PROMPTS=1; curl https://sdk.cloud.google.com | bash && source /home/runner/google-cloud-sdk/path.bash.inc &&  gcloud --quiet components update kubectl
fi

# Connect to cluster
gcloud auth activate-service-account --key-file $AUTH_PATH --project $PROJECT_NAME
gcloud docker --authorize-only --project $PROJECT_NAME
gcloud container clusters get-credentials $CLUSTER_NAME --region $CLUSTER_REGION
## ***** END GOOGLE CONNECTOR

fi

## Build and push containers docker $DOCKER_BUILD_CMD -t $DEPLOY_NAME . docker tag $DEPLOY_NAME $LATEST_NAME docker push $DEPLOY_NAME docker push $LATEST_NAME

## Apply deployments IFS=',' read -r -a deployments <<< “$DEPLOYMENTS” for deployment in “${deployments}”; do

[ -z "$deployment" ] && continue # if empty value

kubectl set image deployment/$deployment $deployment=$DEPLOY_NAME
[ "$deployment" = "${deployments[0]}" ] && kubectl rollout status deployment/$deployment || true

done