#!/usr/bin/env bash echo "=========================== Starting Build Script ===========================" PS4="\[\e[35m\]+ \[\e[m\]" set -vex pushd "$(dirname "${BASH_SOURCE[0]}")/../../" source "$(dirname "${BASH_SOURCE[0]}")/build_functions.sh" COM_DEPENDENCY_VERSION="$(retrievePomProperty "dependency.alfresco-community-repo.version")" REPO_IMAGE=$([[ "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && echo "-Drepo.image.tag=latest" || echo) # Either both the parent and the upstream dependency are the same, or else fail the build if [ "${COM_DEPENDENCY_VERSION}" != "$(retrievePomParentVersion)" ]; then printf "Upstream dependency version (%s) is different then the project parent version!\n" "${COM_DEPENDENCY_VERSION}" exit 1 fi # Prevent merging of any SNAPSHOT dependencies into the master or the release/* branches if [[ $(isPullRequestBuild) && "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ && "${TRAVIS_BRANCH}" =~ ^master$|^release/.+$ ]] ; then printf "PRs with SNAPSHOT dependencies are not allowed into master or release branches\n" exit 1 fi # Prevent release jobs from starting when there are SNAPSHOT upstream dependencies if [[ "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && [ "${TRAVIS_BUILD_STAGE_NAME,,}" = "release" ] ; then printf "Cannot release project with SNAPSHOT dependencies!\n" exit 1 fi UPSTREAM_REPO="github.com/Alfresco/alfresco-community-repo.git" # Search, checkout and build the same branch on the upstream project in case of SNAPSHOT dependencies # Otherwise, checkout the upstream tag and build its Docker image (use just "mvn package", without "mvn install") if [[ "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] ; then pullAndBuildSameBranchOnUpstream "${UPSTREAM_REPO}" "-Pbuild-docker-images -Pags" else pullUpstreamTagAndBuildDockerImage "${UPSTREAM_REPO}" "${COM_DEPENDENCY_VERSION}" "-Pbuild-docker-images -Pags" fi # Build the current project mvn -B -V -q install -DskipTests -Dmaven.javadoc.skip=true -Pbuild-docker-images -Pags ${REPO_IMAGE} popd set +vex echo "=========================== Finishing Build Script =========================="