diff --git a/.automation/build-rpm.sh b/.automation/build-rpm.sh index b1aace0bd7b..660673019e8 100755 --- a/.automation/build-rpm.sh +++ b/.automation/build-rpm.sh @@ -14,7 +14,7 @@ BUILD_LOCALES=0 rpmbuild \ -D "_topmdir rpmbuild" \ -D "_rpmdir rpmbuild" \ - ${RELEASE:+-D "release_suffix ${RELEASE}"} \ + ${SUFFIX:+-D "release_suffix ${SUFFIX}"} \ -D "ovirt_build_ut ${BUILD_UT}" \ -D "ovirt_build_all_user_agents ${BUILD_ALL_USER_AGENTS}" \ -D "ovirt_build_locales ${BUILD_LOCALES}" \ diff --git a/.automation/build-srpm.sh b/.automation/build-srpm.sh index 5578c7e152a..972effc76a4 100755 --- a/.automation/build-srpm.sh +++ b/.automation/build-srpm.sh @@ -1,22 +1,12 @@ #!/bin/bash -xe -# git hash of current commit should be passed as the 1st paraameter -if [ "${GITHUB_SHA}" == "" ]; then - GIT_HASH=$(git rev-list HEAD | wc -l) -else - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) -fi +# git hash of current commit passed from GitHub or HEAD +GIT_HASH=$(git rev-parse --short ${GITHUB_SHA:-HEAD}) +SUFFIX=$(grep -E "]' '/version/{print $3}' | grep -q -- -SNAPSHOT && echo .git${GIT_HASH}) # Directory, where build artifacts will be stored, should be passed as the 1st parameter ARTIFACTS_DIR=${1:-exported-artifacts} -# Prepare the version string (with support for SNAPSHOT versioning) -VERSION=$(mvn help:evaluate -q -DforceStdout -Dexpression=project.version) -VERSION=${VERSION/-SNAPSHOT/-0.${GIT_HASH}.$(date +%04Y%02m%02d%02H%02M)} -IFS='-' read -ra VERSION <<< "$VERSION" -RELEASE=${VERSION[1]-1} -MILESTONE=master - # GH RPM builds will be used only for OST so Firefox and Chrome are enough # GWT build memory needs to be limited EXTRA_BUILD_FLAGS="" @@ -42,4 +32,5 @@ mv *.tar.gz rpmbuild/SOURCES # create the src.rpm rpmbuild \ -D "_topdir rpmbuild" \ + ${SUFFIX:+-D "release_suffix ${SUFFIX}"} \ -ts rpmbuild/SOURCES/*.gz diff --git a/Makefile b/Makefile index 1bbfa25bf5a..1b5eb0de31a 100644 --- a/Makefile +++ b/Makefile @@ -78,8 +78,7 @@ OFFLINE_BUILD_MAVEN_SETTINGS=$(shell pwd)/build/offline-build-maven-settings.xml include version.mak # major, minor, seq -ENGINE_VERSION:=$(shell cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' -e 's/-SNAPSHOT//') -PACKAGE_VERSION=$(ENGINE_VERSION)$(if $(MILESTONE),_$(MILESTONE)) +PACKAGE_VERSION=$(RPM_VERSION)$(if $(MILESTONE),_$(MILESTONE)) DISPLAY_VERSION=$(PACKAGE_VERSION) DEV_BUILD_FLAGS:=-P brand-source-maps @@ -172,7 +171,7 @@ BUILD_TARGET=install -e "s|@SETUP_VAR@|$(PKG_STATE_DIR)|g" \ -e "s|@DEV_PYTHON_DIR@|$(DEV_PYTHON_DIR)|g" \ -e "s|@DEV_SETUP_ENV_DIR@|$(DEV_SETUP_ENV_DIR)|g" \ - -e "s|@RPM_VERSION@|$(ENGINE_VERSION)|g" \ + -e "s|@RPM_VERSION@|$(RPM_VERSION)|g" \ -e "s|@RPM_RELEASE@|$(RPM_RELEASE)|g" \ -e "s|@MILESTONE@|$(MILESTONE)|g" \ -e "s|@PACKAGE_NAME@|$(PACKAGE_NAME)|g" \ diff --git a/version.mak b/version.mak index efc95808a14..2ef2c26878a 100644 --- a/version.mak +++ b/version.mak @@ -15,36 +15,28 @@ # - master # - # -MILESTONE_IF_NEEDED=master +MILESTONE_IF_NEEDED=zstream # RPM_RELEASE_ON_RELEASE should be set to the rpm release to have on release (non-SNAPSHOT) builds. RPM_RELEASE_ON_RELEASE=1 -# AUTO_MILESTONE is set to MILESTONE_IF_NEEDED on SNAPSHOT builds, empty otherwise. -AUTO_MILESTONE=$(shell cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' | grep -q 'SNAPSHOT$$' && echo $(MILESTONE_IF_NEEDED)) +# MILESTONE is set to MILESTONE_IF_NEEDED on SNAPSHOT builds, empty otherwise. +ifndef MILESTONE +MILESTONE=$(shell cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' | grep -q 'SNAPSHOT$$' && echo $(MILESTONE_IF_NEEDED)) +endif -# AUTO_RPM_RELEASE is set to 0.0.something on SNAPSHOT builds, and to RPM_RELEASE_ON_RELEASE otherwise. -AUTO_RPM_RELEASE=$(shell if cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' | grep -q 'SNAPSHOT$$'; then echo 0.2.$(MILESTONE).$$(date -u +%Y%m%d%H%M%S); else echo $(RPM_RELEASE_ON_RELEASE); fi) +# RPM_VERSION is set to pom version without -SNAPSHOT +ifndef RPM_VERSION +RPM_VERSION:=$(shell cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' -e 's/-SNAPSHOT//') +endif -MILESTONE=$(AUTO_MILESTONE) -# RPM release should be automatic. If needed to be set manually: +# RPM release should be automatic. +# Set to 0.something on SNAPSHOT builds, and to RPM_RELEASE_ON_RELEASE otherwise. +# If needed to be set manually: # For pre-release: -# RPM_RELEASE=0.N.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) -# While N is incremented when milestone is changed. +# RPM_RELEASE=0.$(MILESTONE).$(shell date -u +%Y%m%d%H%M%S) # -# For release: -# RPM_RELEASE=N -# while N is incremented each re-release -# -RPM_RELEASE=$(AUTO_RPM_RELEASE) - -# -# Downstream only release prefix -# Downstream (mead) does not use RPM_RELEASE but internal -# mead versioning. -# Increment the variable bellow after every milestone is -# released. -# Or leave empty to have only mead numbering. -# -DOWNSTREAM_RPM_RELEASE_PREFIX=0. +ifndef RPM_RELEASE +RPM_RELEASE=$(shell if cat pom.xml | head -n 20 | grep '' | head -n 1 | sed -e 's/.*>\(.*\)<.*/\1/' | grep -q 'SNAPSHOT$$'; then echo 0.$(MILESTONE).$$(date -u +%Y%m%d%H%M%S); else echo $(RPM_RELEASE_ON_RELEASE); fi) +endif