# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0 #
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

steps:
  # GAE standard doesn't play nice with lerna monorepos, so bundle in the local dependencies
  # before creating the zip file.
  - name: node:16-alpine
    id: build
    script: |
      set -x

      # install dev deps and tools for the monorepo
      apk add zip

      # bootstrap and compile only the packages needed for e2e test server
      npm install --workspace=./e2e-test-server
      npx lerna@^7 run compile --scope=@google-cloud/e2e-test-server --include-dependencies

      # builds a small self contained bundle with @vercel/ncc under dist/
      cd e2e-test-server
      npm run bundle

      # create a new fake package.json in dist/ and zip it up into a source zip for GAE
      # standard
      cd dist
      cp ../fake.package.json package.json
      zip -qr appsource.zip .

  # Run the test
  - name: $_TEST_RUNNER_IMAGE
    id: run-tests-gae-standard
    dir: /
    env: ["PROJECT_ID=$PROJECT_ID"]
    args:
      - gae-standard
      - --runtime=nodejs20
      - --appsource=/workspace/e2e-test-server/dist/appsource.zip

logsBucket: gs://opentelemetry-ops-e2e-cloud-build-logs
timeout: 20m
substitutions:
  _TEST_RUNNER_IMAGE: us-central1-docker.pkg.dev/${PROJECT_ID}/e2e-testing/opentelemetry-operations-e2e-testing:0.20.1
  _TEST_SERVER_IMAGE: us-central1-docker.pkg.dev/${PROJECT_ID}/e2e-testing/opentelemetry-operations-js-e2e-test-server:${SHORT_SHA}
