Add nightly olm bundle version check (#750)
* Add nightly olm bundle version check Signed-off-by: Anatolii Bazko <abazko@redhat.com>pull/755/head
parent
1ea969ee52
commit
ea73ff97ce
|
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2021 Red Hat, Inc.
|
||||
# This program and the accompanying materials are made
|
||||
# available under the terms of the Eclipse Public License 2.0
|
||||
# which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# Red Hat, Inc. - initial API and implementation
|
||||
|
||||
set -e
|
||||
|
||||
ROOT_PROJECT_DIR="${GITHUB_WORKSPACE}"
|
||||
if [ -z "${ROOT_PROJECT_DIR}" ]; then
|
||||
BASE_DIR=$(cd "$(dirname "$0")"; pwd)
|
||||
ROOT_PROJECT_DIR=$(dirname "$(dirname "${BASE_DIR}")")
|
||||
fi
|
||||
|
||||
CSV_KUBERNETES_NEW="deploy/olm-catalog/nightly/eclipse-che-preview-kubernetes/manifests/che-operator.clusterserviceversion.yaml"
|
||||
CSV_KUBERNETES_CURRENT=https://raw.githubusercontent.com/eclipse-che/che-operator/master/deploy/olm-catalog/nightly/eclipse-che-preview-kubernetes/manifests/che-operator.clusterserviceversion.yaml
|
||||
|
||||
CSV_OPENSHIFT_NEW="deploy/olm-catalog/nightly/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml"
|
||||
CSV_OPENSHIFT_CURRENT=https://raw.githubusercontent.com/eclipse-che/che-operator/master/deploy/olm-catalog/nightly/eclipse-che-preview-openshift/manifests/che-operator.clusterserviceversion.yaml
|
||||
|
||||
checkNightlyBundleVersions() {
|
||||
git fetch -q
|
||||
changedFiles=(
|
||||
$(git diff --name-only refs/remotes/origin/${GITHUB_BASE_REF}...refs/remotes/origin/${GITHUB_HEAD_REF})
|
||||
)
|
||||
|
||||
for file in "${changedFiles[@]}"
|
||||
do
|
||||
echo "[INFO] Changed file: $file"
|
||||
if [[ "${CSV_KUBERNETES_NEW}" == "${file}" ]]; then
|
||||
compareVersions ${ROOT_PROJECT_DIR}/$CSV_KUBERNETES_NEW $CSV_KUBERNETES_CURRENT
|
||||
elif [[ "${CSV_OPENSHIFT_NEW}" == "${file}" ]]; then
|
||||
compareVersions ${ROOT_PROJECT_DIR}/$CSV_OPENSHIFT_NEW $CSV_OPENSHIFT_CURRENT
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
compareVersions() {
|
||||
CSV_VERSION_NEW=$(yq -r ".spec.version" $1)
|
||||
CSV_VERSION_CURRENT=$(curl -s $2 | yq -r ".spec.version")
|
||||
|
||||
echo "[INFO] New version: $CSV_VERSION_NEW"
|
||||
echo "[INFO] Current version: $CSV_VERSION_CURRENT"
|
||||
|
||||
VERSION_CURRENT_NUMBER=$(convertVersionToNumber $CSV_VERSION_CURRENT)
|
||||
VERSION_NEW_NUMBER=$(convertVersionToNumber $CSV_VERSION_NEW)
|
||||
|
||||
if (( $VERSION_NEW_NUMBER <= $VERSION_CURRENT_NUMBER )); then
|
||||
echo "[ERROR] New nightly bundle version is less than the current one."
|
||||
echo "[ERROR] Please update nightly bundle with script 'olm/update-nightly-bundle.sh'"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
convertVersionToNumber() {
|
||||
version=$1 # 7.28.1-130.nightly
|
||||
versionWithoutNightly="${version%.nightly}" # 7.28.1-130
|
||||
version="${versionWithoutNightly%-*}" # 7.28.1
|
||||
incrementPart="${versionWithoutNightly#*-}" # 130
|
||||
major=$(echo $version | cut -d '.' -f 1) # 7
|
||||
minor=$(echo $version | cut -d '.' -f 2) # 28
|
||||
bugfix=$(echo $version | cut -d '.' -f 3) # 1
|
||||
|
||||
# 702810130
|
||||
echo $((major * 100000000 + minor * 100000 + bugfix * 10000 + incrementPart))
|
||||
}
|
||||
|
||||
checkNightlyBundleVersions
|
||||
|
||||
echo "[INFO] Done."
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Copyright (c) 2021 Red Hat, Inc.
|
||||
# This program and the accompanying materials are made
|
||||
# available under the terms of the Eclipse Public License 2.0
|
||||
# which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# Red Hat, Inc. - initial API and implementation
|
||||
#
|
||||
|
||||
name: Check nightly OLM bundle version
|
||||
on: pull_request
|
||||
jobs:
|
||||
check-bundle-version:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install yq
|
||||
run: sudo pip install yq
|
||||
- name: Check nightly OLM bundle version
|
||||
run: |
|
||||
go version
|
||||
export GOROOT=/opt/hostedtoolcache/go/1.15.10/x64/
|
||||
${GITHUB_WORKSPACE}/.github/bin/check-nightly-olm-bundle-version.sh
|
||||
|
|
@ -16,6 +16,10 @@ if [ -z "${BASE_DIR}" ]; then
|
|||
BASE_DIR=$(cd "$(dirname "$0")"; pwd)
|
||||
fi
|
||||
|
||||
if [ -z "${ROOT_PROJECT_DIR}" ]; then
|
||||
ROOT_PROJECT_DIR=$(dirname "${BASE_DIR}")
|
||||
fi
|
||||
|
||||
if [ -z "${OPERATOR_SDK_BINARY}" ]; then
|
||||
OPERATOR_SDK_BINARY=$(command -v operator-sdk)
|
||||
if [[ ! -x "${OPERATOR_SDK_BINARY}" ]]; then
|
||||
|
|
@ -26,7 +30,7 @@ fi
|
|||
|
||||
# Check for compatible version of operator-sdk:
|
||||
OPERATOR_SDK_VERSION=$(${OPERATOR_SDK_BINARY} version | cut -d, -f1 | cut -d: -f2 | sed 's/[ \"]//g')
|
||||
REQUIRED_OPERATOR_SDK=$(yq -r ".\"operator-sdk\"" "${BASE_DIR}/../REQUIREMENTS")
|
||||
REQUIRED_OPERATOR_SDK=$(yq -r ".\"operator-sdk\"" "${ROOT_PROJECT_DIR}/REQUIREMENTS")
|
||||
case $OPERATOR_SDK_VERSION in
|
||||
"${REQUIRED_OPERATOR_SDK}")
|
||||
echo "Operator SDK ${OPERATOR_SDK_VERSION} installed"
|
||||
|
|
@ -42,16 +46,15 @@ if [ -z "${GOROOT}" ]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
OPERATOR_YAML="${BASE_DIR}"/../deploy/operator.yaml
|
||||
OPERATOR_YAML="${ROOT_PROJECT_DIR}/deploy/operator.yaml"
|
||||
NEW_OPERATOR_YAML="${OPERATOR_YAML}.new"
|
||||
|
||||
# copy licence header
|
||||
eval head -10 "${OPERATOR_YAML}" > ${NEW_OPERATOR_YAML}
|
||||
|
||||
ROOT_PROJECT_DIR=$(dirname "${BASE_DIR}")
|
||||
TAG=$1
|
||||
source ${BASE_DIR}/check-yq.sh
|
||||
source ${BASE_DIR}/olm.sh
|
||||
source ${ROOT_PROJECT_DIR}/olm/check-yq.sh
|
||||
source ${ROOT_PROJECT_DIR}/olm/olm.sh
|
||||
|
||||
ubiMinimal8Version=$(skopeo inspect docker://registry.access.redhat.com/ubi8-minimal:latest | jq -r '.Labels.version')
|
||||
ubiMinimal8Release=$(skopeo inspect docker://registry.access.redhat.com/ubi8-minimal:latest | jq -r '.Labels.release')
|
||||
|
|
@ -70,13 +73,13 @@ yq -ryY "( .spec.template.spec.containers[] | select(.name == \"che-operator\").
|
|||
>> "${NEW_OPERATOR_YAML}"
|
||||
mv "${NEW_OPERATOR_YAML}" "${OPERATOR_YAML}"
|
||||
|
||||
DOCKERFILE=${BASE_DIR}/../Dockerfile
|
||||
DOCKERFILE="${ROOT_PROJECT_DIR}/Dockerfile"
|
||||
sed -i 's|registry.access.redhat.com/ubi8-minimal:.*|'${UBI8_MINIMAL_IMAGE}'|g' $DOCKERFILE
|
||||
|
||||
for platform in 'kubernetes' 'openshift'
|
||||
do
|
||||
if [ -z "${NO_INCREMENT}" ]; then
|
||||
source "${BASE_DIR}/incrementNightlyBundles.sh"
|
||||
source "${ROOT_PROJECT_DIR}/olm/incrementNightlyBundles.sh"
|
||||
incrementNightlyVersion "${platform}"
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue