3efe1cbc7bb1c4f86cc88a50d564efb55fc41960
[releng.git] / jjb / apex / apex-download-artifact.sh
1 #!/bin/bash
2 set -o errexit
3 set -o nounset
4 set -o pipefail
5
6 # log info to console
7 echo "Downloading the Apex artifact. This could take some time..."
8 echo "--------------------------------------------------------"
9 echo
10
11 [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
12
13 if [ -z "$DEPLOY_SCENARIO" ]; then
14   echo "Deploy scenario not set!"
15   exit 1
16 else
17   echo "Deploy scenario: ${DEPLOY_SCENARIO}"
18 fi
19
20 if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
21   if [ "$BRANCH" == 'master' ]; then
22     echo "Skipping download of artifacts for master branch"
23   else
24     # dev build
25     GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_REFSPEC | grep -Eo '[0-9]+$')
26     export OPNFV_ARTIFACT_VERSION="dev${GERRIT_CHANGE_NUMBER}_${GERRIT_PATCHSET_NUMBER}"
27     # get build artifact
28     pushd ${BUILD_DIRECTORY} > /dev/null
29     echo "Downloading packaged dev build: apex-${OPNFV_ARTIFACT_VERSION}.tar.gz"
30     curl --fail -s -o $BUILD_DIRECTORY/apex-${OPNFV_ARTIFACT_VERSION}.tar.gz http://$GS_URL/apex-${OPNFV_ARTIFACT_VERSION}.tar.gz
31     tar -xvf apex-${OPNFV_ARTIFACT_VERSION}.tar.gz
32     popd > /dev/null
33   fi
34 else
35   echo "Will use RPMs..."
36
37   # Must be RPMs/ISO
38   echo "Downloading latest properties file"
39
40   # get the properties file in order to get info regarding artifacts
41   curl --fail -s -o $BUILD_DIRECTORY/opnfv.properties http://$GS_URL/latest.properties
42
43   # source the file so we get OPNFV vars
44   source $BUILD_DIRECTORY/opnfv.properties
45
46   RPM_INSTALL_PATH=$(echo "http://"$OPNFV_RPM_URL | sed 's/\/'"$(basename $OPNFV_RPM_URL)"'//')
47   RPM_LIST=$(basename $OPNFV_RPM_URL)
48
49   if [ "$BRANCH" != 'master' ]; then
50     # find version of RPM
51     VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)')
52     # build RPM List which already includes base Apex RPM
53     RPM_LIST+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm"
54     RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm"
55   fi
56
57   # remove old / install new RPMs
58   if rpm -q python34-opnfv-apex > /dev/null; then
59     INSTALLED_RPMS=$(rpm -qa | grep apex)
60     if [ -n "$INSTALLED_RPMS" ]; then
61       sudo yum remove -y ${INSTALLED_RPMS}
62     fi
63   fi
64   # Create an rpms dir on slave
65   mkdir -p ~/apex_rpms
66   pushd ~/apex_rpms
67   # Remove older rpms which do not match this version
68   find . ! -name "*${VERSION_EXTENSION}.noarch.rpm" -type f -exec rm -f {} +
69   # Download RPM only if changed on server
70   for rpm in $RPM_LIST; do
71     wget -N ${RPM_INSTALL_PATH}/${rpm}
72   done
73   if ! sudo yum install -y $RPM_LIST; then
74     echo "Unable to install new RPMs: $RPM_LIST"
75     exit 1
76   fi
77   popd
78 fi
79
80 # TODO: Uncomment these lines to verify SHA512SUMs once the sums are
81 # fixed.
82 # echo "$OPNFV_ARTIFACT_SHA512SUM $BUILD_DIRECTORY/apex.iso" | sha512sum -c
83 # echo "$OPNFV_RPM_SHA512SUM $BUILD_DIRECTORY/$(basename $OPNFV_RPM_URL)" | sha512sum -c
84
85 # list the files
86 ls -al $BUILD_DIRECTORY
87
88 echo
89 echo "--------------------------------------------------------"
90 echo "Done!"