# Builds both skia-release:prod and a new fiddler using Google Container
# Builder: https://cloud.google.com/container-builder/docs/
#
steps:
  # To test locally, first uncomment the last two lines of this comment block, then submit with:
  #
  #    gcloud builds submit --config cloudbuild.yaml --no-source --substitutions=COMMIT_SHA=b2acf0a93927a57cc1fa9323839e788379ae3366
  #
  # Where COMMIT_SHA is updated to the last commit into Skia.
  #
  # - name: 'gcr.io/cloud-builders/git'
  #   args: ['clone', 'https://github.com/google/skia.git', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/skia-release:prod', './docker/skia-release']
    timeout: 7200s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/skia-wasm-release:prod', './docker/skia-wasm-release']
    timeout: 7200s

  - name: 'gcr.io/skia-public/infra:prod'
    dir: '/home/skia/golib/src/go.skia.org/infra/fiddlek'
    env:
      - 'ROOT=/workspace/__fiddler_staging'
      - 'SKIP_BUILD=1'
    args: ['./build_fiddler_release']
    timeout: 600s

  - name: 'gcr.io/skia-public/infra:prod'
    dir: '/home/skia/golib/src/go.skia.org/infra/debugger'
    env:
      - 'ROOT=/workspace/__debugger_staging'
      - 'SKIP_BUILD=1'
    args: ['make', 'release_ci']
    timeout: 600s

  # We can't (easily) run docker inside of docker, which is how we get
  # the build artifacts out of skia-wasm-release when running locally.
  - name: 'gcr.io/cloud-builders/docker'
    args: ['run', '--volume', '/workspace/wasm-products:/OUT',
           'gcr.io/$PROJECT_ID/skia-wasm-release:prod',
           'sh', '-c', 'cp -r /tmp/* /OUT']
    dir: 'wasm-products'

  - name: 'gcr.io/cloud-builders/docker'
    args: ['run', '--volume', '/workspace/wasm-products:/OUT',
           '--volume', '/workspace/__jsfiddle_staging:/workspace/__jsfiddle_staging',
           '--env', 'ROOT=/workspace/__jsfiddle_staging',
           '--env', 'SKIP_BUILD=1',
           '--workdir', '/home/skia/golib/src/go.skia.org/infra/jsfiddle',
           'gcr.io/skia-public/infra:prod',
           'make', 'release_ci']
    dir: 'wasm-products'
    timeout: 600s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['run', '--volume', '/workspace/wasm-products:/OUT',
           '--volume', '/workspace/__skottie_staging:/workspace/__skottie_staging',
           '--env', 'ROOT=/workspace/__skottie_staging',
           '--env', 'SKIP_BUILD=1',
           '--workdir', '/home/skia/golib/src/go.skia.org/infra/skottie',
           'gcr.io/skia-public/infra:prod',
           'make', 'release_ci']
    dir: 'wasm-products'
    timeout: 600s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/fiddler:$COMMIT_SHA', '/workspace/__fiddler_staging']
    timeout: 600s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/skottie:$COMMIT_SHA', '/workspace/__skottie_staging']
    timeout: 600s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/debugger:$COMMIT_SHA', '/workspace/__debugger_staging']
    timeout: 600s

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/jsfiddle:$COMMIT_SHA', '/workspace/__jsfiddle_staging']
    timeout: 600s
images:
  - 'gcr.io/$PROJECT_ID/fiddler:$COMMIT_SHA'
  - 'gcr.io/$PROJECT_ID/skottie:$COMMIT_SHA'
  - 'gcr.io/$PROJECT_ID/debugger:$COMMIT_SHA'
  - 'gcr.io/$PROJECT_ID/jsfiddle:$COMMIT_SHA'
  - 'gcr.io/$PROJECT_ID/skia-release:prod'
  - 'gcr.io/$PROJECT_ID/skia-wasm-release:prod'
timeout: 7200s
options:
  machineType: 'N1_HIGHCPU_32'