REPO-4735 Added function script and new varify tag version

Big test message below:

[skipTests] message [trigger-release] [devRelease=6.3.0-SNAPSHOT] [release=6.3.0-A5][comRelease=202003] adding some nonsense to test the message -8y-18hrnfjif1][]1[]1r[1][f3][]3g[g]g[[]3[]g[4][]4]g4][3]455[5][6]34[]g[]g[42[r1r31443=1=3=411=3]
This commit is contained in:
David Edwards
2020-03-06 11:53:26 +00:00
parent 8fd7286cf0
commit 0fc5dc59a4
4 changed files with 56 additions and 9 deletions

View File

@@ -111,10 +111,7 @@ matrix:
install: skip #travis_wait mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -q
# Fail the job if there is a docker image tag that matches the RELEASE_VERSION (or project version in the POM if not set)
before_script: skip #bash ./scripts/travis/verifyReleaseTag.sh
script:
- echo ${TRAVIS_COMMIT_MESSAGE}
- echo ${TRAVIS_COMMIT}
- bash ./scripts/travis/mavenReleaseCommitVariablesV2.sh ${TRAVIS_COMMIT_MESSAGE}
script: bash ./scripts/travis/mavenReleaseCommitVariablesV2.sh
# if the release stage fails rollback
# after_failure:
# - mvn release:rollback -DscmCommentPrefix="[maven-release-plugin][skip ci] "

View File

@@ -0,0 +1,8 @@
extractVariable()
{
local variablePrefix=$1 commitMessage=$2
regex="\[$variablePrefix[^\]]*=\K[^\]]*(?=\])"
echo $commitMessage | grep -Po $regex1
}
echo "common_function.sh loaded"

View File

@@ -1,16 +1,16 @@
#!/usr/bin/env bash
set -ev
releaseVersion=$(echo $TRAVIS_COMMIT_MESSAGE | grep -Po '\[release[^\]]*=\K[^\]]*(?=\])')
developmentVersion=$(echo $TRAVIS_COMMIT_MESSAGE | grep -Po '\[devRelease[^\]]*=\K[^\]]*(?=\])')
. ./common_functions.sh
releaseVersion=$(extractVariable "release" $TRAVIS_COMMIT_MESSAGE)
developmentVersion=$(extractVariable "devRelease" $TRAVIS_COMMIT_MESSAGE)
scm_path=$(mvn help:evaluate -Dexpression=project.scm.url -q -DforceStdout)
# Use full history for release
git checkout -B "${TRAVIS_BRANCH}"
# Add email to link commits to user
git config user.email "${GIT_EMAIL}"
echo "releaseVersion is assigned $releaseVersion"
echo "developmentVersion is assigned $developmentVersion"
if [ -z ${releaseVersion} ] || [ -z ${developmentVersion} ];
then echo "Please provide a Release and Development verison in the format <acs-version>-<additional-info> (6.3.0-EA or 6.3.0-SNAPSHOT) by adding a commit message"
exit -1
@@ -41,7 +41,7 @@ else
# release:clean release:prepare release:perform \
# -Prelease
echo "We're going to skip the release this time."
echo "Reaching this point means we have successfully extract the release and development versions from the commit message"
echo "Reaching this point means we have successfully extracted the release and development versions from the commit message"
echo "releaseVersion=$releaseVersion"
echo "developmentVersion=$developmentVersion"
fi

View File

@@ -0,0 +1,42 @@
#!/usr/bin/env bash
set -e
. ./common_functions.sh
releaseVersion=$(extractVariable "release" $TRAVIS_COMMIT_MESSAGE)
# get the image name from the pom file
alfresco_docker_image=$(mvn help:evaluate -f ./docker-alfresco/pom.xml -Dexpression=image.name -q -DforceStdout)
if [ -v ${releaseVersion} ]||[ -z ${releaseVersion} ]; then
# if we don't have a user added release version, get the verison from the pom
# TODO: Set up continuous release. As of REPO-4735 the following is not required if release stage is manual
# pom_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
# if echo $pom_version | grep -q ".*-SNAPSHOT"; then
# releaseVersion=${pom_version%-*} # remove everything after the last '-'
# else
# releaseVersion=$pom_version
# fi
echo "Please provide a releaseVersion in the format <acs-version>-<additional-info> (6.3.0-EA or 6.3.0-SNAPSHOT)"
exit -1
fi
docker_image_full_name="$alfresco_docker_image:$releaseVersion"
function docker_image_exists() {
local image_full_name="$1"; shift
local wait_time="${1:-5}"
local search_term='Pulling|is up to date|not found'
echo "Looking to see if $image_full_name already exists..."
local result="$((timeout --preserve-status "$wait_time" docker 2>&1 pull "$image_full_name" &) | grep -v 'Pulling repository' | egrep -o "$search_term")"
test "$result" || { echo "Timed out too soon. Try using a wait_time greater than $wait_time..."; return 1 ;}
if echo $result | grep -vq 'not found'; then
true
else
false
fi
}
if docker_image_exists $docker_image_full_name; then
echo "Tag $releaseVersion already pushed, release process will interrupt."
exit -1
else
echo "The $releaseVersion tag was not found"
fi