cloudfoundry/stratos

View on GitHub
deploy/ci/tasks/dev-releases/update-gh-release.yml

Summary

Maintainability
Test Coverage
---
platform: linux
inputs:
- name: stratos
- name: helm-chart-tarball
- name: image-tag
image_resource:
  type: docker-image
  source:
   # Generated using scripts/Dockerfile.stratos-ci
   repository: ghcr.io/cf-stratos/stratos-ci-concourse

run:
  path: sh
  args:
    - -exc
    - |
      # Create Github release
      ROOT_DIR=${PWD}
      STRATOS=${ROOT_DIR}/stratos
      source "${STRATOS}/deploy/ci/tasks/dev-releases/vars-helper.sh"

      FULL_VERSION=${LATEST_TAG}
      GIT_TAG=${RELEASE_TAG}

      source ${STRATOS}/deploy/ci/tasks/dev-releases/github-helper.sh

      # Check tagged release version is consistent with package.json version
      TAG_RELEASE_VERSION=$(echo ${FULL_VERSION} | cut -d"-" -f1)
      if [ "${TAG_RELEASE_VERSION}" != "${VERSION}" ]; then
        echo "Package.json version is not consistent with tag release version! ${TAG_RELEASE_VERSION} != ${VERSION}"
        exit 1
      fi
      cd ${ROOT_DIR}/stratos

      # Check that the release exists
      set +e
      github-release info -t ${GIT_TAG}
      RETVAL=$?
      set -e

      # Delete the release if it already exists
      if [ $RETVAL -eq 0 ]; then
        github-release delete -t ${GIT_TAG}
      fi

      # Generate title for the release, based on the tag
      # Sets RELEASE_TITLE and PRE_RELEASE_ARG
      generateReleaseTitle ${GIT_TAG}

      echo "Release Title - ${RELEASE_TITLE}"
      echo "Release Arg   - ${PRE_RELEASE_ARG}"

      # Create new release
      github-release release -t ${GIT_TAG} --name "${RELEASE_TITLE}" ${PRE_RELEASE_ARG}

      cd ${ROOT_DIR}/helm-chart-tarball
      CHART_PACKAGE=$(ls *.tgz)

      # Upload Helm chart to release
      github-release upload -t ${GIT_TAG} --file ${CHART_PACKAGE} --name "${CHART_PACKAGE}"