--- /dev/null
+---
+deprecations:
+ - |
+ Cmake builds upload to SonarCloud. Fix build env to use openjdk11
+ sonarcloud upload will stop working with java8 on October 1st 2020
--- /dev/null
+---
+fixes:
+ - |
+ Fix the capture-instance-metadata script to cleanly exit on AWS nodes.
--- /dev/null
+---
+fixes:
+ - |
+ When evaluating jenkins-config management changes, if a system does not have
+ an openstack cloud defined, we should not fail the job. Instead we now
+ just skip that configuration and verification
--- /dev/null
+---
+fixes:
+ - |
+ openstack-protect-in-use-images.sh
+ Projects that do not have images in jjb were failing this step of the build.
+ code now runs with set -eu -o pipefail for the duration of the script.
+ shellcheck disable comments no longer needed and removed.
+ Code now only merges arrays if non-empty.
+ Simplify dedupe array code.
exit 0
fi
-# detect if we're in AWS
-if grep -qi amazon /sys/devices/virtual/dmi/id/bios_vendor ; then
- echo "INFO: Running in AWS, not capturing instance metadata"
- exit 0
+# AWS not supported, exit
+cloudtype="$(jq -r .v1.datasource /run/cloud-init/result.json)"
+if [[ $cloudtype == "DataSourceEc2Local" ]]; then
+ echo "INFO: Running in AWS, not capturing instance metadata"
+ exit 0
fi
# Retrive OpenStack instace metadata APIs at this IP.
set -ex -o pipefail
+export SET_JDK_VERSION="${SET_JDK_VERSION:-openjdk11}"
+echo "$SET_JDK_VERSION"
+bash <(curl -s https://raw.githubusercontent.com/lfit/releng-global-jjb/master/shell/update-java-alternatives.sh)
+# shellcheck disable=SC1091
+source /tmp/java.env
+
cd /tmp || exit 1
wget -q -O /tmp/sonar-scan.zip \
"https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip"
unzip -q bw.zip
sudo mv build-wrapper-* /opt/build-wrapper
+
+export SET_JDK_VERSION="${SET_JDK_VERSION:-openjdk11}"
+echo "$SET_JDK_VERSION"
+bash <(curl -s https://raw.githubusercontent.com/lfit/releng-global-jjb/master/shell/update-java-alternatives.sh)
+# shellcheck disable=SC1091
+source /tmp/java.env
+
mkdir -p "$build_dir"
cd "$build_dir" || exit 1
}
echo "Verifying that cloud has a master configuration file"
-for cloud in jenkins-config/clouds/openstack/*; do
- if [[ -f $cloud/cloud.cfg ]]; then
- # Get the OS_CLOUD variable from cloud config
- if ! os_cloud=$(grep -E "^OS_CLOUD=" "$cloud/cloud.cfg" | cut -d'=' -f2); then
- os_cloud="vex"
+if [[ -d jenkins-config/clouds/openstack ]]; then
+ for cloud in jenkins-config/clouds/openstack/*; do
+ if [[ -f $cloud/cloud.cfg ]]; then
+ # Get the OS_CLOUD variable from cloud config
+ if ! os_cloud=$(grep -E "^OS_CLOUD=" "$cloud/cloud.cfg" | cut -d'=' -f2); then
+ os_cloud="vex"
+ fi
+ OS_CLOUD=$os_cloud verify_images "$cloud"
+ else
+ echo "ERROR: No cloud.cfg for $cloud"
+ error=true
fi
- OS_CLOUD=$os_cloud verify_images "$cloud"
- else
- echo "ERROR: No cloud.cfg for $cloud"
- error=true
- fi
-done
+ done
+fi
if $error; then
exit 1
# getting purged by the image cleanup script.
# This script assumes images prefixed with the string "ZZCI - " are ci-managed
# images.
+set -eu -o pipefail
echo "---> Protect in-use images"
-
os_cloud="${OS_CLOUD:-vex}"
-set -eu -o pipefail
+images=()
+while read -r -d $'\n' ; do
+ images+=("$REPLY")
+done < <(grep -r IMAGE_NAME --include \*.cfg jenkins-config \
+ | awk -F'=' '{print $2}' \
+ | sort -u)
+
+jjbimages=()
+while read -r -d $'\n' ; do
+ jjbimages+=("$REPLY")
+done < <(grep -r 'ZZCI - ' --include \*.yaml jjb \
+ | awk -F": " '{print $3}' \
+ | sed -e "s:'::;s:'$::;/^$/d" -e 's/^"//' -e 's/"$//' \
+ | sort -u)
+
+if ! [[ ${#images[@]} -eq 0 ]]; then
+ echo "INFO: There are images to protect defined in jenkins-config."
+else
+ echo "ERROR: No images detected in the jenkins-config dir."
+ exit 1
+fi
-declare -a images
-images+=("$(grep -r IMAGE_NAME --include \*.cfg jenkins-config \
- | awk -F'=' '{print $2}' | sort -u)")
-set +o pipefail # Not all projects have images in YAML files and grep returns non-zero on 0 results
-# Ignore SC2179 since we do not want () to result in an empty array item.
-#shellcheck disable=SC2179
-images+=("$(grep -r 'ZZCI - ' --include \*.yaml jjb \
- | awk -F": " '{print $3}' | sed -e "s:'::;s:'$::;/^$/d" -e 's/^"//' -e 's/"$//' | sort -u)")
-set -o pipefail
-readarray -t images <<< "$(for i in "${images[@]}"; do echo "$i"; done | sort -u)"
+if ! [[ ${#jjbimages[@]} -eq 0 ]]; then
+ echo "INFO: There are additional images to protect in the jjb dir."
+ images=("${images[@]}" "${jjbimages[@]}")
+ #dedupe
+ readarray -t images < <(printf '%s\n' "${images[@]}" | sort -u)
+fi
+
+
+echo "INFO: Protecting the following images:"
+for image in "${images[@]}"; do
+ echo "$image"
+done
for image in "${images[@]}"; do
os_image_protected=$(openstack --os-cloud "$os_cloud" \