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> <username>${env.DOCKERHUB_USERNAME}</username>
<password>${env.DOCKERHUB_PASSWORD}</password> <password>${env.DOCKERHUB_PASSWORD}</password>
</server> </server>
<server>
<id>github</id>
<username>${env.GIT_USERNAME}</username>
<password>${env.GIT_PASSWORD}</password>
</server>
<server> <server>
<id>alfresco-internal</id> <id>alfresco-internal</id>
<username>${env.MAVEN_USERNAME}</username> <username>${env.MAVEN_USERNAME}</username>

View File

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

View File

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

View File

@@ -1,7 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -evx
echo "Travis commit message: $TRAVIS_COMMIT_MESSAGE" 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 if [ ! -n "$release_message" ]; then
echo "The commit message is in the wrong format or it does not contain all the required properties." echo "The commit message is in the wrong format or it does not contain all the required properties."
@@ -13,31 +14,3 @@ export DEVELOPMENT_VERSION=$(echo $release_message | grep -Po '(\d\.)+\d-SNAPSHO
echo "Release version is set to $RELEASE_VERSION" echo "Release version is set to $RELEASE_VERSION"
echo "Development version is set to $DEVELOPMENT_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

View File

@@ -8,4 +8,3 @@ then
else else
export MAVEN_PHASE="verify" 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