From 799830973387646aaeb540dc31f18523fece38ee Mon Sep 17 00:00:00 2001 From: Eli Uriegas Date: Thu, 15 Mar 2018 22:05:22 +0000 Subject: [PATCH] Enable new test versioning scheme Enables the usage of a new versioning scheme for test builds: * tp -> Technical Previews * beta -> Beta Releases * rc -> Release Candidates * ga -> General Availability Releases This PR fixes the versioning order for both `deb` and `rpm` packages when it relates to the new versioning scheme (which may or may not be used). Signed-off-by: Eli Uriegas Upstream-commit: 9ba8e36e8588ea75209d813558c8065844c953a0 Component: packaging --- components/packaging/deb/gen-deb-ver | 35 ++++++++++++++++++++++++++-- components/packaging/rpm/gen-rpm-ver | 28 ++++++++++++++-------- 2 files changed, 51 insertions(+), 12 deletions(-) diff --git a/components/packaging/deb/gen-deb-ver b/components/packaging/deb/gen-deb-ver index 2ea9f94b87..f57a5f671f 100755 --- a/components/packaging/deb/gen-deb-ver +++ b/components/packaging/deb/gen-deb-ver @@ -3,6 +3,8 @@ ENGINE_DIR="$1" VERSION="$2" +SUFFIX=${SUFFIX:=ce} + [[ $# < 2 ]] && echo 'not enough args' && exit 1 DATE_COMMAND="date" @@ -10,12 +12,41 @@ if [[ $(uname) -eq "Darwin" ]]; then DATE_COMMAND="docker run --rm alpine date" fi -TZ=UTC +gen_deb_version() { + # Adds an increment to the deb version to get proper order + # 18.01.0-${SUFFIX}-tp1 -> 18.01.0-${SUFFIX}-0.1-tp1 + # 18.01.0-${SUFFIX}-beta1 -> 18.01.0-${SUFFIX}-1.1-beta1 + # 18.01.0-${SUFFIX}-rc1 -> 18.01.0-${SUFFIX}-2.1-rc1 + # 18.01.0-${SUFFIX} -> 18.01.0-${SUFFIX}-3 + fullVersion="$1" + pattern="$2" + increment="$3" + testVersion="${fullVersion#*-$SUFFIX-*$pattern}" + baseVersion="${fullVersion%-"$pattern"*}" + echo "$baseVersion-$increment.$testVersion.$pattern$testVersion" +} + +case "$VERSION" in + *-tp[0-9]*) + debVersion="$(gen_deb_version "$VERSION" tp 0)" + ;; + *-beta[0-9]*) + debVersion="$(gen_deb_version "$VERSION" beta 1)" + ;; + *-rc[0-9]*) + debVersion="$(gen_deb_version "$VERSION" rc 2)" + ;; + *) + debVersion="$VERSION-3" + ;; +esac + +export TZ=UTC tilde='~' # ouch Bash 4.2 vs 4.3, you keel me # git running in different directories, backwards compatible too GIT_COMMAND="git -C $ENGINE_DIR" -debVersion="${VERSION//-/$tilde}" # using \~ or '~' here works in 4.3, but not 4.2; just ~ causes $HOME to be inserted, hence the $tilde +debVersion="${debVersion//-/$tilde}" # using \~ or '~' here works in 4.3, but not 4.2; just ~ causes $HOME to be inserted, hence the $tilde # if we have a "-dev" suffix or have change in Git, let's make this package version more complex so it works better if [[ "$VERSION" == *-dev ]]; then gitUnix="$($GIT_COMMAND log -1 --pretty='%at')" diff --git a/components/packaging/rpm/gen-rpm-ver b/components/packaging/rpm/gen-rpm-ver index 87883c30d5..391c67fc44 100755 --- a/components/packaging/rpm/gen-rpm-ver +++ b/components/packaging/rpm/gen-rpm-ver @@ -11,22 +11,30 @@ if [[ $(uname) -eq "Darwin" ]]; then fi GIT_COMMAND="git -C $ENGINE_DIR" -rpmName=docker-ce rpmVersion="$VERSION" -rpmRelease=1 +rpmRelease=3 # rpmRelease versioning is as follows -# Docker 1.7.0: version=1.7.0, release=1 -# Docker 1.7.0-rc1: version=1.7.0, release=0.1.rc1 -# Docker 1.7.0-cs1: version=1.7.0.cs1, release=1 -# Docker 1.7.0-cs1-rc1: version=1.7.0.cs1, release=0.1.rc1 -# Docker 1.7.0-dev nightly: version=1.7.0, release=0.0.YYYYMMDD.HHMMSS.gitHASH +# Docker 18.01.0-ce: version=18.01.0.ce, release=3 +# Docker 18.01.0-ce-tp1: version=18.01.0.ce, release=0.1.tp1 +# Docker 18.01.0-ce-beta1: version=18.01.0.ce, release=1.1.beta1 +# Docker 18.01.0-ce-rc1: version=18.01.0.ce, release=2.1.rc1 +# Docker 18.01.0-ce-cs1: version=18.01.0.ce.cs1, release=1 +# Docker 18.01.0-ce-cs1-rc1: version=18.01.0.ce.cs1, release=0.1.rc1 +# Docker 18.01.0-ce-dev nightly: version=18.01.0.ce, release=0.0.YYYYMMDD.HHMMSS.gitHASH -# if we have a "-rc*" suffix, set appropriate release -if [[ "$rpmVersion" =~ .*-rc[0-9]+$ ]] ; then +if [[ "$rpmVersion" =~ .*-tp[0-9]+$ ]]; then + tpVersion=${rpmVersion#*-tp} + rpmVersion=${rpmVersion%-tp*} + rpmRelease="0.${tpVersion}.tp${tpVersion}" +elif [[ "$rpmVersion" =~ .*-beta[0-9]+$ ]]; then + betaVersion=${rpmVersion#*-beta} + rpmVersion=${rpmVersion%-beta*} + rpmRelease="1.${betaVersion}.beta${betaVersion}" +elif [[ "$rpmVersion" =~ .*-rc[0-9]+$ ]]; then rcVersion=${rpmVersion#*-rc} rpmVersion=${rpmVersion%-rc*} - rpmRelease="0.${rcVersion}.rc${rcVersion}" + rpmRelease="2.${rcVersion}.rc${rcVersion}" fi DOCKER_GITCOMMIT=$($GIT_COMMAND rev-parse --short HEAD)