deploy/ci/tasks/dev-releases/create-nightly-chart.yml
---
platform: linux
inputs:
- name: stratos
- name: helm-repo
outputs:
- name: helm-chart
image_resource:
type: docker-image
source:
# Generated using scripts/Dockerfile.stratos-ci
repository: ghcr.io/cf-stratos/stratos-ci-concourse
run:
path: bash
args:
- -xc
- |
# Initialize Helm for client-side use
helm init --client-only
ROOT_DIR=$PWD
STRATOS=${ROOT_DIR}/stratos
source ${STRATOS}/deploy/ci/tasks/dev-releases/create-chart-helper.sh
HELM_REPO=${ROOT_DIR}/helm-repo
cd ${STRATOS}/deploy/kubernetes/
TAG=$(nightlyTag)
IMAGE_TAG=${TAG}
VERSION=$(cat ${STRATOS}/package.json | grep version | grep -Po "([0-9\.]?)*")
# Patch Helm chart
patchHelmChartDev ${IMAGE_TAG} ${DOCKER_ORG} ${DOCKER_REGISTRY} ./console ${IMAGE_TAG} ${VERSION}
echo ${IMAGE_TAG}
echo ${TAG}
# Generate Helm package
updateHelmDependency
helm package console
cp console*.tgz ${ROOT_DIR}/helm-chart/console-helm-chart-v${IMAGE_TAG}.tgz
cd ${ROOT_DIR}/helm-chart/
INDEX_FILE=${HELM_REPO}/index.yaml
CHART_FILE=${ROOT_DIR}/helm-chart/console-helm-chart-v${IMAGE_TAG}.tgz
if [ -f ${INDEX_FILE} ]; then
NIGHTLY_EXISTS=$(cat ${INDEX_FILE} | grep ${TAG})
NIGHTLY_EXISTS=$(echo $?)
if [ $NIGHTLY_EXISTS -eq 0 ]; then
# Patch Digest
INDEX_SHA256SUM=$(grep -B5 -A0 ${TAG} ${INDEX_FILE} | sed -n 's/digest: \([a-zA-Z0-9]*\)/\1/p' | xargs)
CURR_SHA256SUM=$(sha256sum ${CHART_FILE}| cut -d' ' -f1)
if [ "${INDEX_SHA256SUM}" = "${CURR_SHA256SUM}" ]; then
echo 'Checksum is equal, quitting'
else
echo 'Checksum not equal, patching index.yaml'
sed -i 's/'"${INDEX_SHA256SUM}"'/'"${CURR_SHA256SUM}"'/g' ${INDEX_FILE}
fi
# Patch Version
INDEX_VERSION=$(sed -n 's/version: \(2.0.0-dev.*\)/\1/p' ${INDEX_FILE} | xargs)
if [ "${INDEX_VERSION}" = "${IMAGE_TAG}" ]; then
echo 'version is equal, quitting'
else
echo 'version not equal, patching index.yaml'
sed -i 's/'"${INDEX_VERSION}"'/'"${IMAGE_TAG}"'/g' ${INDEX_FILE}
fi
# Patch Created Date
CREATED_DATE=$(grep -B5 -A0 ${TAG} ${INDEX_FILE} | sed -n 's/created: \(.*\)/\1/p' | xargs)
sed -i 's/'"${CREATED_DATE}"'/'"$(date +%Y-%m-%dT%H:%M:%S.%NZ)"'/g' ${INDEX_FILE}
else
# Index file exists, but no 2.0.0-dev release has ever been published
cp ${INDEX_FILE} ${ROOT_DIR}/helm-chart/
MERGE_INDEX="--merge index.yaml"
helm repo index ./ ${MERGE_INDEX} --url https://github.com/${GITHUB_ORG}/${GITHUB_REPO}/releases/download/${TAG}/
cp index.yaml ${HELM_REPO}/
fi
fi
# Update Helm Repository
cd ${HELM_REPO}
setupAndPushChange