diff --git a/.travis.yml b/.travis.yml index 59d981a1c6..006a9da762 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,10 @@ install: skip services: - docker +env: + global: + - RELEASE_VERSION=2.7.3 + - DEVELOPMENT_VERSION=2.7.3-SNAPSHOT stages: - name: Build AGS @@ -110,9 +114,28 @@ jobs: - echo "Static Analysis (SAST)" - name: "Community Release" - stage: Release - script: - - echo "Community Release" + stage: Release + if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND commit_message =~ /\[community release\]/ + script: + - echo "Community Release" + - bash scripts/release-community.sh + before_deploy: + - bash scripts/zip-artifacts.sh community + deploy: + - provider: s3 + access_key_id: ${ARTIFACTS_KEY} + secret_access_key: ${ARTIFACTS_SECRET} + region: "eu-west-1" + bucket: "alfresco-artefacts-staging" + upload_dir: "community/alfresco-governance-services/release/${TRAVIS_BRANCH}" + 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/alfresco-governance-services/release/${TRAVIS_BRANCH}" + - name: "Enterprise Release" stage: Release script: diff --git a/scripts/release-community.sh b/scripts/release-community.sh new file mode 100644 index 0000000000..6a5f0ed88e --- /dev/null +++ b/scripts/release-community.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -e + +GIT_COMMITTER_NAME=alfresco-build +GIT_COMMITTER_EMAIL=info@alfresco.com + +# Use full history for release +git checkout -B "${TRAVIS_BRANCH}" +# Add email to link commits to user +git config user.email "${GIT_COMMITTER_EMAIL}" +git config user.name "${GIT_COMMITTER_NAME}" + + +if [ -z ${RELEASE_VERSION} ] || [ -z ${DEVELOPMENT_VERSION} ]; + then echo "Please provide a Release and Development verison" + exit -1 +else + mvn --batch-mode + -Dusername="${GITHUB_USERNAME}" \ + -Dpassword="${GITHUB_PASSWORD}" \ + -DreleaseVersion=${RELEASE_VERSION} \ + -DdevelopmentVersion=${DEVELOPMENT_VERSION} \ + -DskipTests -Dcommunity -DuseReleaseProfile=false \ + -Prelease-community release:clean release:prepare release:perform +fi diff --git a/scripts/zip-artifacts.sh b/scripts/zip-artifacts.sh new file mode 100644 index 0000000000..506262140b --- /dev/null +++ b/scripts/zip-artifacts.sh @@ -0,0 +1,12 @@ +#!/bin/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 + zip alfresco-rm-community-${RELEASE_VERSION}.zip *amp + cp alfresco-rm-community-${RELEASE_VERSION}.zip artifacts_dir + ls artifacts_dir +#elif [ $1 == "enterprise" ]; then +fi