diff --git a/travis-env-vars.yml b/.travis.env-vars.yml similarity index 84% rename from travis-env-vars.yml rename to .travis.env-vars.yml index fe0aed8112..d3b953daed 100644 --- a/travis-env-vars.yml +++ b/.travis.env-vars.yml @@ -16,3 +16,4 @@ env: - ALFRESCO_URL="http://localhost:8080/alfresco" - SHARE_URL="http://localhost:8181/share" - DISPLAY=:99.0 + - WEBDRIVER_ARGUMENTS='-Dwebdriver.local.grid=true -Dwebdriver.browser=RemoteFireFox -Dwebdriver.localGrid=false -Dorg.alfresco.rm.timeout_seconds.MEDIUM=30' diff --git a/.travis.publish-stage.yml b/.travis.publish-stage.yml new file mode 100644 index 0000000000..fdb32962c4 --- /dev/null +++ b/.travis.publish-stage.yml @@ -0,0 +1,43 @@ +jobs: + include: + - 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}" diff --git a/.travis.release-stage.yml b/.travis.release-stage.yml new file mode 100644 index 0000000000..acdf93a64a --- /dev/null +++ b/.travis.release-stage.yml @@ -0,0 +1,52 @@ +jobs: + include: + - name: "Community Release and Publish to S3 Staging Bucket" + stage: Release + if: commit_message =~ /\[community release .*\]/ + before_script: + - source scripts/set-release-variables.sh + - bash scripts/check-existing-tags.sh "alfresco/alfresco-governance-share-community" + script: + - bash scripts/release.sh "community" + before_deploy: + - bash scripts/zip-artifacts-staging.sh "community" + - bash scripts/pushDockerDigestTag.sh -i quay.io/alfresco/alfresco-governance-repository-community -i quay.io/alfresco/alfresco-governance-share-community -r quay.io -t ${RELEASE_VERSION} + 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: "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: "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" + - bash scripts/pushDockerDigestTag.sh -i quay.io/alfresco/alfresco-governance-repository-enterprise -i quay.io/alfresco/alfresco-governance-share-enterprise -r quay.io -t ${RELEASE_VERSION} + 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}" diff --git a/.travis.tests-stage.yml b/.travis.tests-stage.yml new file mode 100644 index 0000000000..b368d33bec --- /dev/null +++ b/.travis.tests-stage.yml @@ -0,0 +1,135 @@ +jobs: + include: + - name: "Community Integrations Tests on MySQL" + stage: Tests + script: + - echo "Community Integrations Tests on MySQL" + - name: "Enterprise Integrations Tests on MySQL" + stage: Tests + script: + - echo "Enterprise Integrations Tests on MySQL" + + - name: "Community Rest API Tests" + stage: Tests + install: + - | + if [[ ${TRAVIS_BRANCH} == *community* ]]; then + travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-community-repo -am + else + travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo -am + fi + - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-community-rest-api -am + before_script: + - | + if [[ ${TRAVIS_BRANCH} == *community* ]]; then + bash scripts/startAlfresco.sh $COMMUNITY_REPO_PATH false + else + bash scripts/startAlfresco.sh $ENTERPRISE_REPO_PATH false + fi + - bash scripts/waitForAlfrescoToStart.sh + script: mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false + after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 + + - name: "Enterprise Rest API Tests" + stage: Tests + install: + - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo -am + - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-enterprise-rest-api -am + before_script: + - bash scripts/startAlfresco.sh $ENTERPRISE_REPO_PATH false + - bash scripts/waitForAlfrescoToStart.sh + - bash scripts/dockerLimitMemory.sh + - sudo free -m -t + script: + - mvn -B test -pl :alfresco-governance-services-automation-enterprise-rest-api -Dskip.automationtests=false + after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 + + - &community_shared_UI_configuration + name: "Community Smoke UI Tests for Records" + stage: Tests + addons: + firefox: "43.0.1" + artifacts: + paths: + - ./rm-automation/rm-automation-ui/target/surefire-reports + - ./rm-automation/rm-automation-ui/target/reports + - ./rm-automation/rm-automation-ui/target/screenshots + target_paths: $TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER + install: + - | + if [[ ${TRAVIS_COMMIT_MESSAGE} == *"[tests on community]"* ]]; then + travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-community-repo,:alfresco-governance-services-community-share -am + bash scripts/startAlfresco.sh $COMMUNITY_SHARE_PATH false + bash scripts/waitForAlfrescoToStart.sh + else + travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo,:alfresco-governance-services-enterprise-share -am + bash scripts/startAlfresco.sh $ENTERPRISE_SHARE_PATH true + bash scripts/waitForAlfrescoToStart.sh + bash scripts/dockerLimitMemory.sh + sudo free -m -t + fi + - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-ui -am + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=communitySmokeRecords.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *community_shared_UI_configuration + name: "Community Smoke UI Tests for actions in RM site" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=communitySmokeRMSite.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *community_shared_UI_configuration + name: "Community Level 2 UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=communityLevel2Tests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - &enterprise_shared_UI_configuration + name: "Enterprise Level 2 UI Tests" + stage: Tests + if: commit_message !~ /\[tests on community\]/ + addons: + firefox: "43.0.1" + artifacts: + paths: + - ./rm-automation/rm-automation-ui/target/surefire-reports + - ./rm-automation/rm-automation-ui/target/reports + - ./rm-automation/rm-automation-ui/target/screenshots + target_paths: $TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER + install: + - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo,:alfresco-governance-services-enterprise-share -am + - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-ui -am + - bash scripts/startAlfresco.sh $ENTERPRISE_SHARE_PATH true + - bash scripts/waitForAlfrescoToStart.sh + - bash scripts/dockerLimitMemory.sh + - sudo free -m -t + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseLevel2Tests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Classification Level 2 UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseLevel2ClassificationTests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Records Classification UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseRecordsClassificationTests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Folders Classification UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseFoldersClassificationTests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Documents Classification UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseDocumentsClassificationTests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Security Marks UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseSecurityMarksTests.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} + + - <<: *enterprise_shared_UI_configuration + name: "Enterprise Console, Guides and Configuration UI Tests" + script: + - travis_wait 90 xvfb-run --server-args="-screen 0 1920x1080x24" mvn -B test -pl :alfresco-governance-services-automation-ui -Dskip.automationtests=false -DsuiteXmlFile=enterpriseConsoleGuidesAndConfiguration.xml -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} ${WEBDRIVER_ARGUMENTS} diff --git a/.travis.yml b/.travis.yml index 757d5dd75c..30bb77c9e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,15 @@ --- import: - - source: travis-env-vars.yml + - source: .travis.env-vars.yml + - source: .travis.tests-stage.yml + - source: .travis.release-stage.yml + - source: .travis.publish-stage.yml dist: xenial sudo: required language: java jdk: openjdk11 -addons: - firefox: "43.0.1" - services: - - xvfb - docker git: @@ -34,8 +33,8 @@ before_cache: rm -rf ${HOME}/.m2/repository/org/alfresco/alfresco-governance-ser before_install: - mkdir -p "${HOME}/.m2" && cp -f .travis.settings.xml "${HOME}/.m2/settings.xml" - find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf - - docker login quay.io -u ${QUAY_USERNAME} -p ${QUAY_PASSWORD} - - docker login -u ${DOCKERHUB_USERNAME} -p ${DOCKERHUB_PASSWORD} + - echo "${DOCKERHUB_PASSWORD}" | docker login -u="${DOCKERHUB_USERNAME}" --password-stdin + - echo "${QUAY_PASSWORD}" | docker login -u="${QUAY_USERNAME}" --password-stdin quay.io install: skip stages: @@ -44,7 +43,9 @@ stages: if: commit_message !~ /\[skip tests\]/ - name: Security Scans - name: Release + if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND commit_message =~ /\[(community|enterprise) release .*\]/ - name: Publish + if: fork = false AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND commit_message =~ /\[publish\]/ jobs: include: @@ -71,103 +72,6 @@ jobs: script: - travis_retry travis_wait 35 mvn -B -q ${MAVEN_PHASE} -Dskip.integrationtests=false -f rm-benchmark/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - - name: "Community Integrations Tests on MySQL" - stage: Tests - script: - - echo "Community Integrations Tests on MySQL" - - name: "Enterprise Integrations Tests on MySQL" - stage: Tests - script: - - echo "Enterprise Integrations Tests on MySQL" - - - name: "Community Rest API Tests" - stage: Tests - install: - - | - if [[ ${TRAVIS_BRANCH} == *community* ]]; then - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-community-repo -am - else - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo -am - fi - - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-community-rest-api -am - before_script: - - | - if [[ ${TRAVIS_BRANCH} == *community* ]]; then - bash scripts/startAlfresco.sh $COMMUNITY_REPO_PATH - else - bash scripts/startAlfresco.sh $ENTERPRISE_REPO_PATH - fi - - bash scripts/waitForAlfrescoToStart.sh - script: mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false - after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 - - - name: "Enterprise Rest API Tests" - stage: Tests - install: - - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo -am - - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-enterprise-rest-api -am - before_script: - - bash scripts/startAlfresco.sh $ENTERPRISE_REPO_PATH - - bash scripts/waitForAlfrescoToStart.sh - - bash scripts/dockerLimitMemory.sh - - sudo free -m -t - script: - - mvn -B test -pl :alfresco-governance-services-automation-enterprise-rest-api -Dskip.automationtests=false - after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 - - - name: "Enterprise Rest API WORM Tests" - stage: Tests - install: - - travis_retry travis_wait 90 mvn -B -U -q clean install ${MVN_SKIP} -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo,:alfresco-governance-services-enterprise-share -am - - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-enterprise-rest-api -am - before_script: - - bash scripts/create-worm-bucket.sh - - bash scripts/start-compose.sh "${ENTERPRISE_SHARE_PATH}/docker-compose-worm-support-rest.yml" - - bash scripts/waitForAlfrescoToStart.sh - script: mvn -B test -pl :alfresco-governance-services-automation-enterprise-rest-api -DsuiteXmlFile=wormTestSuite.xml -Dskip.automationtests=false - after_script: bash scripts/cleanup.sh - after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 - - - name: "Community UI Tests ..." - stage: Tests - install: - - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-community-repo,:alfresco-governance-services-community-share -am - before_script: - - bash scripts/startAlfresco.sh $COMMUNITY_SHARE_PATH - - bash scripts/waitForAlfrescoToStart.sh - script: - - echo "Community UI Tests ..." - - name: "Enterprise UI Tests ..." - stage: Tests - install: - - travis_retry travis_wait 90 mvn -B -q install $MVN_SKIP -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo,:alfresco-governance-services-enterprise-share -am - before_script: - - bash scripts/startAlfresco.sh $ENTERPRISE_SHARE_PATH - - bash scripts/waitForAlfrescoToStart.sh - script: - - echo "Enterprise UI Tests ..." - - - name: "Enterprise UI WORM Tests" - stage: Tests - addons: - firefox: "43.0.1" - artifacts: - paths: - - ./rm-automation/rm-automation-ui/target/surefire-reports - - ./rm-automation/rm-automation-ui/target/reports - - ./rm-automation/rm-automation-ui/target/screenshots - target_paths: $TRAVIS_BUILD_NUMBER - install: - - travis_retry travis_wait 90 mvn -B -U -q clean install ${MVN_SKIP} -PbuildDockerImage -pl :alfresco-governance-services-enterprise-repo,:alfresco-governance-services-enterprise-share -am - - travis_retry travis_wait 30 mvn -B -U -q clean install ${MVN_SKIP} -pl :alfresco-governance-services-automation-ui -am - before_script: - - bash scripts/create-worm-bucket.sh - - bash scripts/start-compose.sh "${ENTERPRISE_SHARE_PATH}/docker-compose-worm-support-ui.yml" - - bash scripts/waitForAlfrescoToStart.sh - script: mvn -B test -pl :alfresco-governance-services-automation-ui -DsuiteXmlFile=wormTestSuite.xml -Dskip.automationtests=false -Dshare.url=${SHARE_URL} -Dalfresco.url=${ALFRESCO_URL} -Dwebdriver.local.grid=true -Dwebdriver.browser=RemoteFireFox -Dwebdriver.localGrid=false -Dwebdriver.element.wait.time=20000 -Dwebdriver.page.render.wait.time=60000 - after_script: bash scripts/cleanup.sh - after_failure: docker ps -a | grep '_alfresco_1' | awk '{print $1}' | xargs docker logs | tail -5000 - - name: "Source Clear Scan (SCA)" stage: Security Scans script: travis_wait 30 bash scripts/source_clear.sh @@ -175,17 +79,3 @@ jobs: stage: Security Scans script: - echo "Static Analysis (SAST)" - - - name: "Community Release" - stage: Release - script: - - echo "Community Release" - - name: "Enterprise Release" - stage: Release - script: - - echo "Enterprise Release" - - - name: "Copy to S3 Release Bucket" - stage: Publish - script: - - echo "Copy to S3 Release Bucket" diff --git a/pom.xml b/pom.xml index b82b502a2f..6b58a06bb4 100644 --- a/pom.xml +++ b/pom.xml @@ -15,9 +15,9 @@ - scm:git:ssh://git@github.com/Alfresco/governance-services.git - scm:git:ssh://git@github.com/Alfresco/governance-services.git - scm:git:ssh://git@github.com/Alfresco/governance-services.git + scm:git:https://github.com/Alfresco/governance-services.git + scm:git:https://github.com/Alfresco/governance-services.git + https://github.com/Alfresco/governance-services V3.4.0 diff --git a/scripts/check-existing-tags.sh b/scripts/check-existing-tags.sh new file mode 100644 index 0000000000..dee1edabc3 --- /dev/null +++ b/scripts/check-existing-tags.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +alfresco_docker_image=$1 +# Verify release tags +get_tags="$(curl https://hub.docker.com/r/$alfresco_docker_image/tags/ | grep -o '\"result\".*\"]')" +arrayTags=($get_tags) + +echo "Existing Tags: $get_tags" + +for tag in "${arrayTags[@]}" +do + if [[ $tag = ${RELEASE_VERSION} ]]; then + echo "Tag ${RELEASE_VERSION} already pushed, release process will interrupt." + exit 0 + fi +done + +echo "The ${RELEASE_VERSION} tag was not found" diff --git a/scripts/dockerLimitMemory.sh b/scripts/dockerLimitMemory.sh index 57050588ed..74b259a8c7 100644 --- a/scripts/dockerLimitMemory.sh +++ b/scripts/dockerLimitMemory.sh @@ -5,18 +5,21 @@ set -x docker stats --no-stream #limit memory used by each container -docker update --memory=2Gb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_alfresco_' | awk '{print $1}') -docker update --memory=1200Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_search_' | awk '{print $1}') -#docker update --memory=1Gb --memory-swap -1 $(docker ps -a | grep '_zeppelin_' | awk '{print $1}') +docker update --memory=2.5Gb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_alfresco_' | awk '{print $1}') +docker update --memory=1Gb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_search_' | awk '{print $1}') docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_postgres_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_transform-router_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_imagemagick_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_alfresco-pdf-renderer_' | awk '{print $1}') -docker update --memory=300Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_shared-file-store_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_tika_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_libreoffice_' | awk '{print $1}') docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_activemq_' | awk '{print $1}') -docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_transform-misc_' | awk '{print $1}') +docker update --memory=1Gb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_transform-core-aio_' | awk '{print $1}') + +shareContainerId=$(docker ps -a | grep '_share_' | awk '{print $1}') +if [ -n "$shareContainerId" ]; then + docker update --memory=1Gb --memory-swap -1 --restart on-failure $shareContainerId + docker stop $(docker ps -a | grep '_transform-router_' | awk '{print $1}') + docker stop $(docker ps -a | grep '_shared-file-store_' | awk '{print $1}') + else + docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_transform-router_' | awk '{print $1}') + docker update --memory=512Mb --memory-swap -1 --restart on-failure $(docker ps -a | grep '_shared-file-store_' | awk '{print $1}') +fi #stop not needed containers docker stop $(docker ps -a | grep '_zeppelin_' | awk '{print $1}') diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 0000000000..d9a13454ec --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,40 @@ +#!/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 + +# Check if it's a hotfix version by counting the number of dots in the version number. +if [ $(echo "${RELEASE_VERSION}" | grep -o "\." | wc -l) == 3 ] && [ ${release_type} == "enterprise" ]; +then + deployment_repository="hotfix-release" +else + deployment_repository="${release_type}-release" +fi + +mvn --batch-mode \ + -Dusername="${GIT_USERNAME}" \ + -Dpassword="${GIT_PASSWORD}" \ + -DreleaseVersion=${RELEASE_VERSION} \ + -DdevelopmentVersion=${DEVELOPMENT_VERSION} \ + -DscmCommentPrefix="[maven-release-plugin][skip ci] " \ + "-Darguments=-DskipTests -D${release_type} -P${deployment_repository},release-${release_type}" \ + release:clean release:prepare release:perform diff --git a/scripts/set-release-variables.sh b/scripts/set-release-variables.sh new file mode 100755 index 0000000000..35013b7053 --- /dev/null +++ b/scripts/set-release-variables.sh @@ -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" \ No newline at end of file diff --git a/scripts/startAlfresco.sh b/scripts/startAlfresco.sh index 4143c742d2..f1dad1fcb2 100644 --- a/scripts/startAlfresco.sh +++ b/scripts/startAlfresco.sh @@ -3,4 +3,9 @@ set -ev cd $1 +# if 2nd input parameter is true then use .env.ci where TRANSFORM_SERVICE_ENABLED flag is set to false +# in order to not use anymore Transform router and Shared File Store +if $2 ; then + mv -u .env.ci .env +fi docker-compose up -d diff --git a/scripts/zip-artifacts-release.sh b/scripts/zip-artifacts-release.sh new file mode 100644 index 0000000000..b62faef5f0 --- /dev/null +++ b/scripts/zip-artifacts-release.sh @@ -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-governance-services-${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-governance-services-${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-governance-services-${release_type}-rest-api-explorer:${RELEASE_VERSION}:war \ + -DoutputDirectory=artifacts_dir + +cd artifacts_dir +zip alfresco-governance-services-${release_type}-${RELEASE_VERSION}.zip * + +# rm *.amp *.war -f +ls \ 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..439d9619c7 --- /dev/null +++ b/scripts/zip-artifacts-staging.sh @@ -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-governance-services-${release_type}-repo-*.amp artifacts_dir +cp rm-${release_type}/rm-${release_type}-share/target/alfresco-governance-services-${release_type}-share-*.amp artifacts_dir +cp rm-${release_type}/rm-${release_type}-rest-api-explorer/target/alfresco-governance-services-${release_type}-rest-api-explorer-*.war artifacts_dir + +cd artifacts_dir +zip alfresco-governance-services-${release_type}-${RELEASE_VERSION}.zip * + +# rm *.amp *.war -f +ls \ No newline at end of file