mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge pull request #1246 from Alfresco/merge-2.7/APPS-241_addCoReleaseStage_merge2.7_no
APPS-241: Create Community and Enterprise Release and Publish Stages
This commit is contained in:
96
.travis.yml
96
.travis.yml
@@ -35,7 +35,9 @@ stages:
|
|||||||
if: commit_message !~ /\[skip tests\]/
|
if: commit_message !~ /\[skip tests\]/
|
||||||
- name: Security Scans
|
- name: Security Scans
|
||||||
- name: Release
|
- name: Release
|
||||||
|
if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND commit_message =~ /\[(community|enterprise) release .*\]/
|
||||||
- name: Publish
|
- name: Publish
|
||||||
|
if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND commit_message =~ /\[publish\]/
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
@@ -110,16 +112,92 @@ jobs:
|
|||||||
script:
|
script:
|
||||||
- echo "Static Analysis (SAST)"
|
- echo "Static Analysis (SAST)"
|
||||||
|
|
||||||
- name: "Community Release"
|
- name: "Community Release and Publish to S3 Staging Bucket"
|
||||||
stage: Release
|
stage: Release
|
||||||
|
if: commit_message =~ /\[community release .*\]/
|
||||||
|
before_script:
|
||||||
|
- source scripts/set-release-variables.sh
|
||||||
script:
|
script:
|
||||||
- echo "Community Release"
|
- bash scripts/release.sh "community"
|
||||||
- name: "Enterprise Release"
|
before_deploy:
|
||||||
stage: Release
|
- bash scripts/zip-artifacts-staging.sh "community"
|
||||||
script:
|
deploy:
|
||||||
- echo "Enterprise Release"
|
- provider: s3
|
||||||
|
access_key_id: ${STAGING_AWS_ACCESS_KEY}
|
||||||
|
secret_access_key: ${STAGING_AWS_SECRET_KEY}
|
||||||
|
region: "eu-west-1"
|
||||||
|
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/alfresco-artefacts-staging/community/RM/${RELEASE_VERSION}"
|
||||||
|
|
||||||
- name: "Copy to S3 Release Bucket"
|
- name: "Enterprise Release and Publish to S3 Staging Bucket"
|
||||||
stage: Publish
|
stage: Release
|
||||||
|
if: commit_message =~ /\[enterprise release .*\]/
|
||||||
|
before_script:
|
||||||
|
- source scripts/set-release-variables.sh
|
||||||
script:
|
script:
|
||||||
- echo "Copy to S3 Release Bucket"
|
- bash scripts/release.sh "enterprise"
|
||||||
|
before_deploy:
|
||||||
|
- bash scripts/zip-artifacts-staging.sh "enterprise"
|
||||||
|
deploy:
|
||||||
|
- provider: s3
|
||||||
|
access_key_id: ${STAGING_AWS_ACCESS_KEY}
|
||||||
|
secret_access_key: ${STAGING_AWS_SECRET_KEY}
|
||||||
|
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/alfresco-artefacts-staging/enterprise/RM/${RELEASE_VERSION}"
|
||||||
|
|
||||||
|
- 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: ${RELEASE_AWS_ACCESS_KEY}
|
||||||
|
secret_access_key: $RELEASE_AWS_ACCESS_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/eu.dl.alfresco.com/release/community/RM/${RELEASE_VERSION}"
|
||||||
|
|
||||||
|
- name: "Enterprise Publish to S3 Release 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: ${RELEASE_AWS_ACCESS_KEY}
|
||||||
|
secret_access_key: ${RELEASE_AWS_ACCESS_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
|
||||||
|
on:
|
||||||
|
all_branches: true
|
||||||
|
after_deploy:
|
||||||
|
- echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/eu.dl.alfresco.com/release/enterprise/RM/${RELEASE_VERSION}"
|
@@ -138,3 +138,4 @@ Unzip it and change to the "solr" folder within it. Start the Solr server using
|
|||||||
solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
|
solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
|
||||||
```
|
```
|
||||||
Start your repository
|
Start your repository
|
||||||
|
|
6
pom.xml
6
pom.xml
@@ -21,9 +21,9 @@
|
|||||||
</organization>
|
</organization>
|
||||||
|
|
||||||
<scm>
|
<scm>
|
||||||
<connection>scm:git:ssh://git@github.com/Alfresco/governance-services.git</connection>
|
<connection>scm:git:https://github.com/Alfresco/governance-services.git</connection>
|
||||||
<developerConnection>scm:git:ssh://git@github.com/Alfresco/governance-services.git</developerConnection>
|
<developerConnection>scm:git:https://github.com/Alfresco/governance-services.git</developerConnection>
|
||||||
<url>scm:git:ssh://git@github.com/Alfresco/governance-services.git</url>
|
<url>https://github.com/Alfresco/governance-services</url>
|
||||||
<tag>HEAD</tag>
|
<tag>HEAD</tag>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
|
32
scripts/release.sh
Executable file
32
scripts/release.sh
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
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"
|
||||||
|
|
||||||
|
if [ -z $release_type ]; then
|
||||||
|
echo "Please provide a release type."
|
||||||
|
exit 1
|
||||||
|
elif [ $release_type != "community" -a $release_type != "enterprise" ]; then
|
||||||
|
echo "The provided release type is not valid."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
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} \
|
||||||
|
-DscmCommentPrefix="[maven-release-plugin][skip ci] " \
|
||||||
|
-DskipTests -D${release_type} -DuseReleaseProfile=false \
|
||||||
|
-P${release_type}-release release:clean release:prepare release:perform
|
16
scripts/set-release-variables.sh
Executable file
16
scripts/set-release-variables.sh
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Travis commit message: $TRAVIS_COMMIT_MESSAGE"
|
||||||
|
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."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
export RELEASE_VERSION=$(echo $release_message | grep -Po '(\d\.)+(\d|[a-z])(-[A-Z]\d){0,1}' | head -1)
|
||||||
|
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"
|
@@ -7,5 +7,4 @@ then
|
|||||||
export MAVEN_PHASE="deploy"
|
export MAVEN_PHASE="deploy"
|
||||||
else
|
else
|
||||||
export MAVEN_PHASE="verify"
|
export MAVEN_PHASE="verify"
|
||||||
fi
|
fi
|
||||||
|
|
24
scripts/zip-artifacts-release.sh
Normal file
24
scripts/zip-artifacts-release.sh
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
release_type=$1
|
||||||
|
|
||||||
|
mkdir "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
|
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 -e
|
||||||
|
|
||||||
|
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
|
Reference in New Issue
Block a user