tags: - web - $BRANCH_NAME - $SHORT_SHA substitutions: _COPYBARA: NO_RUN images: - 'gcr.io/$PROJECT_ID/web:$BRANCH_NAME-${SHORT_SHA}_$BUILD_ID' steps: - id: copy_external_pages name: 'gcr.io/cloud-builders/docker' entrypoint: sh args: - 'bin/copy_external_pages' waitFor: ['-'] - id: pull_cache name: 'gcr.io/cloud-builders/docker' entrypoint: sh args: - '-c' - 'docker pull gcr.io/$PROJECT_ID/web:$BRANCH_NAME-deps || docker pull gcr.io/$PROJECT_ID/web:master-deps || true' waitFor: ['-'] - id: pull_cloud_builder name: 'gcr.io/overleaf-ops/cloud-builder' entrypoint: 'true' waitFor: ['-'] - id: build_deps name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'build_deps' waitFor: - pull_cache - id: push_deps name: 'gcr.io/cloud-builders/docker' entrypoint: sh args: - '-c' - 'docker push gcr.io/$PROJECT_ID/web:$BRANCH_NAME-deps' waitFor: - build_deps - id: build_dev name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'build_dev' waitFor: - copy_external_pages - build_deps - id: format name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'format_in_docker' waitFor: - build_dev - id: lint name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'lint_in_docker' waitFor: - build_dev - id: test_acceptance_app name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_acceptance_app' waitFor: - build_dev - id: test_acceptance_modules name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_acceptance_modules' - '-j4' - '--output-sync' waitFor: - build_dev - id: test_frontend name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_frontend' waitFor: - build_dev - id: test_karma name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_karma_build_run' waitFor: - build_dev - id: test_unit_app name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_unit_app_parallel_gnu_make_docker' - 'J=10' waitFor: - build_dev - id: test_unit_modules name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'test_unit_modules' - '-j4' - '--output-sync' waitFor: - build_dev - id: build_webpack name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'build_webpack' waitFor: - build_dev - id: build_production name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'build' waitFor: - build_webpack - id: tar name: 'gcr.io/$PROJECT_ID/cloud-builder' args: - 'tar' waitFor: - build_webpack - id: tests_passed name: 'gcr.io/$PROJECT_ID/cloud-builder' entrypoint: 'true' args: [] waitFor: - format - lint - test_acceptance_app - test_acceptance_modules - test_unit_app - test_unit_modules - test_frontend - id: cdn_upload name: gcr.io/cloud-builders/gsutil entrypoint: /bin/bash args: - '-c' - 'bin/cdn_upload' env: - 'CDN_STAG=gs://ol-stag-web-assets-1' - 'CDN_PROD=gs://mgcp-1117973-ol-prod-web-assets-1' waitFor: - tar - tests_passed - id: decrypt_sentry_secret name: gcr.io/cloud-builders/gcloud args: - kms - decrypt - --ciphertext-file=.sentryclirc.enc - --plaintext-file=.sentryclirc - --location=us-east1 - --keyring=cloud-build-1 - --key=cloud-build-key waitFor: - build_dev - id: sentry_upload name: 'getsentry/sentry-cli' entrypoint: /bin/sh args: - 'bin/sentry_upload' waitFor: - decrypt_sentry_secret - tar - tests_passed - id: predecrypt name: gcr.io/cloud-builders/gcloud entrypoint: /bin/bash args: - '-c' - 'touch /root/.ssh/id_ed25519 && chmod -R 0600 /root/.ssh' volumes: - name: 'ssh' path: /root/.ssh waitFor: - build_dev - id: fetch_copybara_key name: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine entrypoint: /bin/bash args: - '-c' - 'gcloud secrets versions access latest --secret=overleaf-copybara-web-private-key > /root/.ssh/id_ed25519 && chmod 600 /root/.ssh/id_ed25519' volumes: - name: 'ssh' path: /root/.ssh waitFor: - predecrypt - id: pull_copybara name: 'sharelatex/copybara' entrypoint: 'true' args: [] waitFor: - build_dev - id: copybara name: 'sharelatex/copybara' entrypoint: bin/invoke-copybara env: - 'COPYBARA_CONFIG=./copybara/community/copy.bara.sky' - 'COPYBARA=${_COPYBARA}' - 'BRANCH_NAME=$BRANCH_NAME' volumes: - name: 'ssh' path: /root/.ssh waitFor: - pull_copybara - fetch_copybara_key - tests_passed timeout: 3600s options: machineType: 'N1_HIGHCPU_32' env: - 'BRANCH_NAME=$BRANCH_NAME' - 'BUILD_NUMBER=${SHORT_SHA}_$BUILD_ID' - 'COMMIT_SHA=$COMMIT_SHA' - 'DOCKER_COMPOSE_FLAGS=-f docker-compose.ci.yml'