X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fpackaging%2Fbuild-rpm.sh;h=da0fdcf6d275e0d36530d47bd238551e74d55b99;hb=4f8152aefad00f771fa5d79f4d3fb7c486ea363b;hp=4d411ff35003ad6813d12d8108a5e03e911afb57;hpb=b7a803d347805aff9db3989f67a7456304c7e0e6;p=releng%2Fbuilder.git diff --git a/jjb/packaging/build-rpm.sh b/jjb/packaging/build-rpm.sh index 4d411ff35..da0fdcf6d 100644 --- a/jjb/packaging/build-rpm.sh +++ b/jjb/packaging/build-rpm.sh @@ -14,16 +14,28 @@ PYTHON="rpm_build/bin/python" $PYTHON -m pip install --upgrade pip $PYTHON -m pip install -r "$WORKSPACE/packaging/packages/requirements.txt" +# Verify artifact at DOWNLOAD_URL exists +# shellcheck disable=SC2154 +url_status=$(curl --silent --head --location --output /dev/null --write-out \ + '%{http_code}' "$DOWNLOAD_URL") +if [[ $url_status = 2* ]]; then + echo "Artifact at DOWNLOAD_URL exists" +else + echo "Artifact at DOWNLOAD_URL does not exist" + exit 1 +fi + + # Packaging logic needs a tarball, but can repackage a zip into tar.gz # if needed. All builds except multipatch-test publish both a tar.gz and zip. # Autorelease passes DOWNLOAD_URL to zip, others typically use tar.gz. # If URL is to zip, check if there's a tar.gz available to avoid repackaging. if [[ $DOWNLOAD_URL = *.zip ]]; then # shellcheck disable=SC2154 - candidate_tarball_url="${{DOWNLOAD_URL//zip/tar.gz}}" + candidate_tarball_url="${DOWNLOAD_URL//zip/tar.gz}" # shellcheck disable=SC2154 url_status=$(curl --silent --head --location --output /dev/null --write-out \ - '%{{http_code}}' "$candidate_tarball_url") + '%{http_code}' "$candidate_tarball_url") if [[ $url_status = 2* ]]; then DOWNLOAD_URL="$candidate_tarball_url" fi @@ -34,10 +46,28 @@ fi --changelog_name "$CHANGELOG_NAME" \ --changelog_email "$CHANGELOG_EMAIL" \ direct \ - --download_url "$DOWNLOAD_URL" + --download_url "$DOWNLOAD_URL" \ + --pkg_version "$PKG_VERSION_OVERRIDE" -# Move RPMs (SRPM and noarch) to dir of files that will be uploaded to Nexus -UPLOAD_FILES_PATH="$WORKSPACE/upload_files" -mkdir -p "$UPLOAD_FILES_PATH" -mv "/home/$USER/rpmbuild/RPMS/noarch/"*.rpm "$_" -mv "/home/$USER/rpmbuild/SRPMS/"*.rpm "$_" +# Always allow push to scratch repos, only push to CD repos in RelEng Jenkins +if [ "$DEPLOY_TO_REPO" == "opendaylight-epel-7-x86_64-devel" ]; then + # Move RPMs (SRPM and noarch) to dir of files that will be uploaded to Nexus + UPLOAD_FILES_PATH="$WORKSPACE/upload_files" + mkdir -p "$UPLOAD_FILES_PATH" + cp "$HOME/rpmbuild/RPMS/noarch/"*.rpm "$_" + cp "$HOME/rpmbuild/SRPMS/"*.rpm "$_" +else + # Publish RPMs to CD repos if in production Jenkins, not in sandbox Jenkins + if [ "$SILO" == "sandbox" ]; then + echo "Not uploading RPMs to Nexus because running in sandbox" + elif [ "$SILO" == "releng" ]; then + # Move RPMs (SRPM+noarch) to dir of files that will be uploaded to Nexus + UPLOAD_FILES_PATH="$WORKSPACE/upload_files" + mkdir -p "$UPLOAD_FILES_PATH" + cp "$HOME/rpmbuild/RPMS/noarch/"*.rpm "$_" + cp "$HOME/rpmbuild/SRPMS/"*.rpm "$_" + else + echo "Unknown Jenkins silo: $SILO" + exit 1 + fi +fi