X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fpackaging%2Fbuild-rpm.sh;h=3911cc15ac45880cbfafe51527b68b91fa63e565;hb=00d3630da9460d3dc0795d438a3e69210bf16aeb;hp=aeee81f5a85a581b57386c139e74a4eae57bf8b5;hpb=5276fbe0260115b68cfc94a7771c23eb6bacf1e4;p=releng%2Fbuilder.git diff --git a/jjb/packaging/build-rpm.sh b/jjb/packaging/build-rpm.sh index aeee81f5a..3911cc15a 100644 --- a/jjb/packaging/build-rpm.sh +++ b/jjb/packaging/build-rpm.sh @@ -12,19 +12,52 @@ virtualenv rpm_build source rpm_build/bin/activate PYTHON="rpm_build/bin/python" $PYTHON -m pip install --upgrade pip -$PYTHON -m pip install -r "$WORKSPACE/packaging/rpm/requirements.txt" +$PYTHON -m pip install -r "$WORKSPACE/packaging/packages/requirements.txt" -# Make a URL for the tarball artifact from DOWNLOAD_URL (a zip) +# Verify artifact at DOWNLOAD_URL exists # shellcheck disable=SC2154 -download_url="${{DOWNLOAD_URL//zip/tar.gz}}" +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}" + # shellcheck disable=SC2154 + url_status=$(curl --silent --head --location --output /dev/null --write-out \ + '%{http_code}' "$candidate_tarball_url") + if [[ $url_status = 2* ]]; then + DOWNLOAD_URL="$candidate_tarball_url" + fi +fi # Build release specified by build params -"$WORKSPACE/packaging/rpm/build.py" --download_url "$download_url" \ - --changelog_name "$CHANGELOG_NAME" \ - --changelog_email "$CHANGELOG_EMAIL" +"$WORKSPACE/packaging/packages/build.py" --rpm \ + --changelog_name "$CHANGELOG_NAME" \ + --changelog_email "$CHANGELOG_EMAIL" \ + direct \ + --download_url "$DOWNLOAD_URL" -# 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 "$_" +# Publish RPMs to Nexus if in production Jenkins, else host on sandbox Jenkins +if [ "$SILO" == "sandbox" ]; then + echo "Not uploading RPMs to Nexus because running in sandbox" +elif [ "$SILO" == "releng" ]; 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 + echo "Unknown Jenkins silo: $SILO" + exit 1 +fi