diff --git a/script/ci/cloudbuild-new-build-master.yaml b/script/ci/cloudbuild-new-build-master.yaml index 9770378342..c188f75b0a 100644 --- a/script/ci/cloudbuild-new-build-master.yaml +++ b/script/ci/cloudbuild-new-build-master.yaml @@ -66,36 +66,77 @@ steps: cp config/database.yml.sample config/database.yml cp lib/assets/javascripts/cdb/secrets.example.json lib/assets/javascripts/cdb/secrets.json + + # Build and push image - name: gcr.io/cloud-builders/docker entrypoint: /bin/bash args: - -c - | - echo 'Building images...' - docker pull gcr.io/cartodb-on-gcp-main-artifacts/builder:latest - docker build --build-arg BUNDLE_JOBS=16 --build-arg COMPILE_ASSETS=true -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME}--${SHORT_SHA} --cache-from gcr.io/cartodb-on-gcp-main-artifacts/builder:latest . - docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME}--${SHORT_SHA} -f Dockerfile.resque . - docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME}--${SHORT_SHA} -f Dockerfile.subscriber . - echo 'Pushing builder image...' - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME}--${SHORT_SHA} - echo 'Pushing builder-resque image...' - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME}--${SHORT_SHA} - echo 'Pushing builder-subscriber image...' - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} - docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME}--${SHORT_SHA} - if [ "${BRANCH_NAME}" == 'master' ];then - docker tag gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME} gcr.io/cartodb-on-gcp-main-artifacts/builder:latest - docker tag gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME} gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:latest - docker tag gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME} gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:latest + set -x + if [ -z "${_PR_NUMBER}" ] && [ "${BRANCH_NAME}" == 'master' ] + then + echo '** Push to master **' + + echo 'Pulling latest image...' + docker pull gcr.io/cartodb-on-gcp-main-artifacts/builder:latest + docker build --build-arg BUNDLE_JOBS=4 --build-arg COMPILE_ASSETS=true -t gcr.io/cartodb-on-gcp-main-artifacts/builder:latest -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME}--${SHORT_SHA} --cache-from gcr.io/cartodb-on-gcp-main-artifacts/builder:latest . + docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:latest -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME}--${SHORT_SHA} -f Dockerfile.resque . + docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:latest -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME}--${SHORT_SHA} -f Dockerfile.subscriber . + + echo 'Pushing builder image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${BRANCH_NAME}--${SHORT_SHA} docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:latest + + echo 'Pushing builder-resque image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${BRANCH_NAME}--${SHORT_SHA} docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:latest + + echo 'Pushing builder-subscriber image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${BRANCH_NAME}--${SHORT_SHA} docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:latest + + elif [ ! -z "${_PR_NUMBER}" ] && [ ! "${_HEAD_BRANCH}" == 'master' ] + then + echo '** Pull request to master **' + + # Attempts to pull a tag for head branch, if doesn't exists then pulls latest to use cache. + echo 'Pulling most recent image for head branch...' + docker pull gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH} + if [ ! -z "$?" ] + then + docker pull gcr.io/cartodb-on-gcp-main-artifacts/builder:latest + docker tag gcr.io/cartodb-on-gcp-main-artifacts/builder:latest gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH} + fi + + echo 'Building images...' + docker build --build-arg BUNDLE_JOBS=4 --build-arg COMPILE_ASSETS=true -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH}--${SHORT_SHA} --cache-from gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH} . + docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${_HEAD_BRANCH} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${_HEAD_BRANCH}--${SHORT_SHA} -f Dockerfile.resque . + docker build -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${_HEAD_BRANCH} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} -t gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${_HEAD_BRANCH}--${SHORT_SHA} -f Dockerfile.subscriber . + + echo 'Pushing builder image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder:${_HEAD_BRANCH}--${SHORT_SHA} + + echo 'Pushing builder-resque image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${_HEAD_BRANCH} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-resque:${_HEAD_BRANCH}--${SHORT_SHA} + + echo 'Pushing builder-subscriber image...' + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${_HEAD_BRANCH} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${SHORT_SHA} + docker push gcr.io/cartodb-on-gcp-main-artifacts/builder-subscriber:${_HEAD_BRANCH}--${SHORT_SHA} + else + echo '** Not building image. Conditions didn't match. **' fi timeout: 1800s