diff --git a/.travis.settings.xml b/.travis.settings.xml
index 396237a2c3..411d7268b1 100644
--- a/.travis.settings.xml
+++ b/.travis.settings.xml
@@ -45,11 +45,6 @@
${env.DOCKERHUB_USERNAME}
${env.DOCKERHUB_PASSWORD}
-
- github
- ${env.GIT_USERNAME}
- ${env.GIT_PASSWORD}
-
alfresco-internal
${env.MAVEN_USERNAME}
diff --git a/.travis.yml b/.travis.yml
index dc6a07f087..f9eba90c3d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -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
diff --git a/scripts/release.sh b/scripts/release.sh
index 74311e0312..f3bc2cdf74 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -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
\ No newline at end of file
diff --git a/scripts/set-release-variables.sh b/scripts/set-release-variables.sh
index 0f18168c50..e74c9ca4a3 100755
--- a/scripts/set-release-variables.sh
+++ b/scripts/set-release-variables.sh
@@ -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
\ No newline at end of file
+echo "Development version is set to $DEVELOPMENT_VERSION"
\ No newline at end of file
diff --git a/scripts/setUpMavenPhase.sh b/scripts/setUpMavenPhase.sh
index 60be3bb87e..97204e3925 100644
--- a/scripts/setUpMavenPhase.sh
+++ b/scripts/setUpMavenPhase.sh
@@ -7,5 +7,4 @@ then
export MAVEN_PHASE="deploy"
else
export MAVEN_PHASE="verify"
-fi
-
+fi
\ No newline at end of file
diff --git a/scripts/zip-artifacts-release.sh b/scripts/zip-artifacts-release.sh
new file mode 100644
index 0000000000..96a1c14ab3
--- /dev/null
+++ b/scripts/zip-artifacts-release.sh
@@ -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
\ No newline at end of file
diff --git a/scripts/zip-artifacts-staging.sh b/scripts/zip-artifacts-staging.sh
new file mode 100755
index 0000000000..12c4b246ad
--- /dev/null
+++ b/scripts/zip-artifacts-staging.sh
@@ -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
\ No newline at end of file
diff --git a/scripts/zip-artifacts.sh b/scripts/zip-artifacts.sh
deleted file mode 100755
index d81acca46d..0000000000
--- a/scripts/zip-artifacts.sh
+++ /dev/null
@@ -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