diff --git a/.travis.settings.xml b/.travis.settings.xml index 3c61da4f43..e60b0e0c4c 100644 --- a/.travis.settings.xml +++ b/.travis.settings.xml @@ -44,6 +44,11 @@ ${env.DOCKERHUB_USERNAME} ${env.DOCKERHUB_PASSWORD} + + quay.io + ${env.QUAY_USERNAME} + ${env.QUAY_PASSWORD} + alfresco-internal ${env.MAVEN_USERNAME} @@ -54,5 +59,10 @@ ${env.MAVEN_USERNAME} ${env.MAVEN_PASSWORD} + + alfresco-internal-snapshots + ${env.MAVEN_USERNAME} + ${env.MAVEN_PASSWORD} + diff --git a/.travis.yml b/.travis.yml index ae2b234671..3b795963ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,19 +4,23 @@ language: java jdk: - openjdk11 +services: + - docker + branches: only: - - /release\/V2.7.*/ - - /feature-2.7\/.*/ - - /merge-2.7\/.*/ - - /hotfix-2.7\/.*/ + - /release\/V3.\d+.*/ + - /feature-3.\d+\/.*/ + - /merge-3.\d+\/.*/ + - /hotfix-3.\d+\/.*/ cache: directories: - $HOME/.m2 + # the cache can grow constantly before_cache: - - rm -rf $HOME/.m2/repository/org/alfresco/alfresco-rm* + - rm -rf $HOME/.m2/repository/org/alfresco/alfresco-governance-services* before_install: - "cp .travis.settings.xml $HOME/.m2/settings.xml" @@ -32,18 +36,27 @@ stages: jobs: include: - - name: "Build Community" + - name: "Build AGS Community" stage: Build AGS + before_script: source scripts/setUpMavenPhase.sh script: - - echo "Build Community" - - name: "Build Enterprise" + - travis_retry travis_wait 120 mvn -B -q clean ${MAVEN_PHASE} -P${BUILD_PROFILE} -Dimage.tag=${IMAGE_TAG} -Dskip.integrationtests=false -Dcommunity -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + + - name: "Build AGS Enterprise" stage: Build AGS + before_script: source scripts/setUpMavenPhase.sh + install: + - travis_retry travis_wait 60 mvn -B -q clean install -DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -f rm-community/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn script: - - echo "Build Enterprise" - - name: "Benchmark" + - travis_retry travis_wait 60 mvn -B -q ${MAVEN_PHASE} -P${BUILD_PROFILE} -Dimage.tag=${IMAGE_TAG} -Dskip.integrationtests=false -f rm-enterprise/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + + - name: "Build AGS Benchmark" stage: Build AGS + before_script: source scripts/setUpMavenPhase.sh + install: + - travis_retry travis_wait 60 mvn -B -q clean install -DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn script: - - echo "Benchmark" + - 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 diff --git a/pom.xml b/pom.xml index ae4f97947c..0de3743381 100644 --- a/pom.xml +++ b/pom.xml @@ -1163,6 +1163,7 @@ start pre-integration-test + stop start diff --git a/scripts/setUpMavenPhase.sh b/scripts/setUpMavenPhase.sh new file mode 100644 index 0000000000..688f019df8 --- /dev/null +++ b/scripts/setUpMavenPhase.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +echo "Branch name: ${TRAVIS_BRANCH}" +echo "Pull request: ${TRAVIS_PULL_REQUEST}" +echo "Travis job name: ${TRAVIS_JOB_NAME}" +branchName=${TRAVIS_BRANCH} +imageTag=${branchName:8} +echo "Image tag: ${imageTag}" + + if [[ ${TRAVIS_JOB_NAME} == "Build AGS Enterprise" ]]; + then + export BUILD_PROFILE="internal" + else + export BUILD_PROFILE="master" + fi + + if [[ "${TRAVIS_BRANCH}" == "master" && "${TRAVIS_PULL_REQUEST}" == "false" ]]; + then + export MAVEN_PHASE="deploy" + export IMAGE_TAG="latest" + elif [[ ${TRAVIS_BRANCH} = release* && "${TRAVIS_PULL_REQUEST}" == "false" ]]; + then + export MAVEN_PHASE="deploy" + export IMAGE_TAG="${imageTag}-latest" + else + export MAVEN_PHASE="verify" + export BUILD_PROFILE="buildDockerImage" + export IMAGE_TAG="latest" + fi