Split release stage into community and enterprise release and publish stages

- copy artifacts from maven for publish job
- simplify scripts
This commit is contained in:
ehardon
2020-10-20 15:17:08 +03:00
parent 12dbc5d5e7
commit 267afe2ffc
8 changed files with 132 additions and 72 deletions

View File

@@ -45,11 +45,6 @@
<username>${env.DOCKERHUB_USERNAME}</username>
<password>${env.DOCKERHUB_PASSWORD}</password>
</server>
<server>
<id>github</id>
<username>${env.GIT_USERNAME}</username>
<password>${env.GIT_PASSWORD}</password>
</server>
<server>
<id>alfresco-internal</id>
<username>${env.MAVEN_USERNAME}</username>

View File

@@ -33,7 +33,10 @@ stages:
- name: Tests
if: commit_message !~ /\[skip tests\]/
- name: Security Scans
- name: Release and Publish
- name: Release
if: fork = false AND (branch = master OR branch =~ /release\/.*/ OR branch =~ /merge-2.7\/.*/) AND type != pull_request AND commit_message =~ /\[(community|enterprise) release .*\]/
- name: Publish
if: fork = false AND (branch = master OR branch =~ /release\/.*/ OR branch =~ /merge-2.7\/.*/) AND type != pull_request AND commit_message =~ /\[publish\]/ #TODO
jobs:
include:
@@ -108,23 +111,88 @@ jobs:
script:
- echo "Static Analysis (SAST)"
- name: "Release"
stage: Release and Publish
if: fork = false AND (branch = master OR branch =~ /release\/.*/ OR branch =~ /merge-2.7\/.*/) AND type != pull_request AND commit_message =~ /.*\[.*release.*\].*/
- name: "Community Release and Publish to S3 Staging Bucket"
stage: Release
if: commit_message =~ /\[community release .*\]/
before_script:
- echo ${TRAVIS_COMMIT_MESSAGE}
- source scripts/set-release-variables.sh
script:
- bash scripts/release.sh ${RELEASE_TYPE}
- bash scripts/release.sh "community"
before_deploy:
- bash scripts/zip-artifacts.sh ${RELEASE_TYPE}
- bash scripts/zip-artifacts-staging.sh "community"
deploy:
- provider: s3
access_key_id: ${ARTIFACTS_KEY}
secret_access_key: ${ARTIFACTS_SECRET}
region: "eu-west-1"
bucket: ${ARTIFACTS_UPLOAD_BUCKET}
upload_dir: ${ARTIFACTS_UPLOAD_DIR}
bucket: "alfresco-artefacts-staging"
upload_dir: "community/RM/${RELEASE_VERSION}"
skip_cleanup: true
acl: private
local_dir: artifacts_dir
on:
all_branches: true
after_deploy:
- echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/${ARTIFACTS_UPLOAD_BUCKET}/${ARTIFACTS_UPLOAD_DIR}"
- name: "Enterprise Release and Publish to S3 Staging Bucket"
stage: Release
if: commit_message =~ /\[enterprise release .*\]/
before_script:
- source scripts/set-release-variables.sh
script:
- bash scripts/release.sh "enterprise"
before_deploy:
- bash scripts/zip-artifacts-staging.sh "enterprise"
deploy:
- provider: s3
access_key_id: ${ARTIFACTS_KEY}
secret_access_key: ${ARTIFACTS_SECRET}
region: "eu-west-1"
bucket: "alfresco-artefacts-staging"
upload_dir: "enterprise/RM/${RELEASE_VERSION}"
skip_cleanup: true
acl: private
local_dir: artifacts_dir
on:
all_branches: true
after_deploy:
- echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/${ARTIFACTS_UPLOAD_BUCKET}/${ARTIFACTS_UPLOAD_DIR}"
- name: "Community Publish to S3 Release Bucket"
stage: Publish
if: commit_message =~ /\[community release .*\]/ AND commit_message =~ /\[publish\]/
before_script: source scripts/set-release-variables.sh
script: skip
before_deploy: bash scripts/zip-artifacts-release.sh "community"
deploy:
- provider: s3
access_key_id: ${ARTIFACTS_KEY}
secret_access_key: ${ARTIFACTS_SECRET}
region: "eu-west-1"
bucket: "eu.dl.alfresco.com"
upload_dir: "release/community/RM/${RELEASE_VERSION}"
skip_cleanup: true
acl: private
local_dir: artifacts_dir
on:
all_branches: true
after_deploy:
- echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/${ARTIFACTS_UPLOAD_BUCKET}/${ARTIFACTS_UPLOAD_DIR}"
- name: "Enterprise Publish to S3 Staging Bucket"
stage: Publish
if: commit_message =~ /\[enterprise release .*\]/ AND commit_message =~ /\[publish\]/
before_script: source scripts/set-release-variables.sh
script: skip
before_deploy: bash scripts/zip-artifacts-release.sh "enterprise"
deploy:
- provider: s3
access_key_id: ${ARTIFACTS_KEY}
secret_access_key: ${ARTIFACTS_SECRET}
region: "eu-west-1"
bucket: "eu.dl.alfresco.com"
upload_dir: "release/enterprise/RM/${RELEASE_VERSION}"
skip_cleanup: true
acl: private
local_dir: artifacts_dir

View File

@@ -4,6 +4,8 @@ set -e
# Use full history for release
git checkout -B "${TRAVIS_BRANCH}"
git config user.email "build@alfresco.com"
release_type=$1
echo Release type: "$release_type"
@@ -15,15 +17,15 @@ elif [ $release_type != "community" -a $release_type != "enterprise" ]; then
exit 1
fi
if [ -z ${RELEASE_VERSION} ] || [ -z ${DEVELOPMENT_VERSION} ];
then echo "Please provide a Release and Development verison"
exit 1
else
mvn --batch-mode \
if [ -z ${RELEASE_VERSION} ] || [ -z ${DEVELOPMENT_VERSION} ]; then
echo "Please provide a Release and Development verison"
exit 1
fi
mvn --batch-mode \
-Dusername="${GIT_USERNAME}" \
-Dpassword="${GIT_PASSWORD}" \
-DreleaseVersion=${RELEASE_VERSION} \
-DdevelopmentVersion=${DEVELOPMENT_VERSION} \
-DskipTests -D${release_type} -DuseReleaseProfile=false \
-P${release_type}-release release:clean release:prepare release:perform
fi
-P${release_type}-release release:clean release:prepare release:perform

View File

@@ -1,7 +1,8 @@
#!/usr/bin/env bash
set -evx
echo "Travis commit message: $TRAVIS_COMMIT_MESSAGE"
release_message=$(echo $TRAVIS_COMMIT_MESSAGE | grep -Po '(\[(internal )*(community|enterprise)\srelease\s(\d\.)+(\d|[a-z])(-[A-Z]\d){0,1}\s(\d\.)+\d-SNAPSHOT\])')
release_message=$(echo $TRAVIS_COMMIT_MESSAGE | grep -Po '(\[(community|enterprise)\srelease\s(\d\.)+(\d|[a-z])(-[A-Z]\d){0,1}\s(\d\.)+\d-SNAPSHOT\])')
if [ ! -n "$release_message" ]; then
echo "The commit message is in the wrong format or it does not contain all the required properties."
@@ -12,32 +13,4 @@ export RELEASE_VERSION=$(echo $release_message | grep -Po '(\d\.)+(\d|[a-z])(-[A
export DEVELOPMENT_VERSION=$(echo $release_message | grep -Po '(\d\.)+\d-SNAPSHOT')
echo "Release version is set to $RELEASE_VERSION"
echo "Development version is set to $DEVELOPMENT_VERSION"
release_type=$(echo $release_message | grep -Po '(internal\s)*(community|enterprise)')
if [[ $release_type =~ "community" ]]; then
echo "Setting Community Release variables..."
export RELEASE_TYPE="community"
if [[ $release_type =~ "internal" ]]; then
echo "Setting ARTIFACTS_UPLOAD_BUCKET and ARTIFACTS_UPLOAD_DIR for the Internal release"
export ARTIFACTS_UPLOAD_BUCKET="alfresco-artefacts-staging"
export ARTIFACTS_UPLOAD_DIR="community/RM/${RELEASE_VERSION}"
else
echo "Setting ARTIFACTS_UPLOAD_BUCKET and ARTIFACTS_UPLOAD_DIR for the release"
export ARTIFACTS_UPLOAD_BUCKET="eu.dl.alfresco.com"
export ARTIFACTS_UPLOAD_DIR="release/community/RM/${RELEASE_VERSION}"
fi
elif [[ $release_type =~ "enterprise" ]]; then
echo "Setting Enterprise Release variables..."
export RELEASE_TYPE="enterprise"
if [[ $release_type =~ "internal" ]]; then
echo "Setting ARTIFACTS_UPLOAD_BUCKET and ARTIFACTS_UPLOAD_DIR for the Internal release"
export ARTIFACTS_UPLOAD_BUCKET="alfresco-artefacts-staging"
export ARTIFACTS_UPLOAD_DIR="enterprise/RM/${RELEASE_VERSION}"
else
echo "Setting ARTIFACTS_UPLOAD_BUCKET and ARTIFACTS_UPLOAD_DIR for the release"
export ARTIFACTS_UPLOAD_BUCKET="eu.dl.alfresco.com"
export ARTIFACTS_UPLOAD_DIR="release/enterprise/RM/${RELEASE_VERSION}"
fi
fi
echo "Development version is set to $DEVELOPMENT_VERSION"

View File

@@ -7,5 +7,4 @@ then
export MAVEN_PHASE="deploy"
else
export MAVEN_PHASE="verify"
fi
fi

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -evx
release_type=$1
mkdir "artifacts_dir"
cp rm-${release_type}/rm-${release_type}-repo/target/alfresco-rm-*${release_type}*amp artifacts_dir
cp rm-${release_type}/rm-${release_type}-share/target/alfresco-rm-*${release_type}*amp artifacts_dir
cp rm-${release_type}/rm-${release_type}-rest-api-explorer/target/alfresco-rm-*${release_type}*war artifacts_dir
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy \
-Dartifact=org.alfresco:alfresco-rm-${release_type}-repo:${RELEASE_VERSION}:amp \
-DoutputDirectory=artifacts_dir
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy \
-Dartifact=org.alfresco:alfresco-rm-${release_type}-share:${RELEASE_VERSION}:amp \
-DoutputDirectory=artifacts_dir
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy \
-Dartifact=org.alfresco:alfresco-rm-${release_type}-rest-api-explorer:${RELEASE_VERSION}:war \
-DoutputDirectory=artifacts_dir
cd artifacts_dir
zip alfresco-rm-${release_type}-${RELEASE_VERSION}.zip *
# rm *.amp *.war -f
ls artifacts_dir

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -evx
release_type=$1
mkdir "artifacts_dir"
cp rm-${release_type}/rm-${release_type}-repo/target/alfresco-rm-${release_type}-repo-*.amp artifacts_dir
cp rm-${release_type}/rm-${release_type}-share/target/alfresco-rm-${release_type}-share-*.amp artifacts_dir
cp rm-${release_type}/rm-${release_type}-rest-api-explorer/target/alfresco-rm-${release_type}-rest-api-explorer-*.war artifacts_dir
cd artifacts_dir
zip alfresco-rm-${release_type}-${RELEASE_VERSION}.zip *
# rm *.amp *.war -f
ls artifacts_dir

View File

@@ -1,19 +0,0 @@
#!/usr/bin/env bash
set -e
if [ $1 == 'community' ]; then
mkdir "artifacts_dir"
cp rm-community/rm-community-repo/target/alfresco-rm-*community*amp artifacts_dir
cp rm-community/rm-community-share/target/alfresco-rm-*community*amp artifacts_dir
cp rm-community/rm-community-rest-api-explorer/target/alfresco-rm-*community*war artifacts_dir
cd artifacts_dir
zip alfresco-rm-community-${RELEASE_VERSION}.zip *amp
ls artifacts_dir
elif [ $1 == "enterprise" ]; then
mkdir "artifacts_dir"
cp rm-enterprise/rm-enterprise-repo/target/alfresco-rm-*enterprise*amp artifacts_dir
cp rm-enterprise/rm-enterprise-share/target/alfresco-rm-*enterprise*amp artifacts_dir
cd artifacts_dir
zip alfresco-rm-enterprise-${RELEASE_VERSION}.zip *amp
ls artifacts_dir
fi