mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
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:
@@ -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>
|
||||
|
86
.travis.yml
86
.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
|
||||
|
@@ -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
|
@@ -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"
|
@@ -7,5 +7,4 @@ then
|
||||
export MAVEN_PHASE="deploy"
|
||||
else
|
||||
export MAVEN_PHASE="verify"
|
||||
fi
|
||||
|
||||
fi
|
27
scripts/zip-artifacts-release.sh
Normal file
27
scripts/zip-artifacts-release.sh
Normal 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
|
15
scripts/zip-artifacts-staging.sh
Executable file
15
scripts/zip-artifacts-staging.sh
Executable 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
|
@@ -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
|
Reference in New Issue
Block a user