# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# 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.

version: '2.4'

volumes:
  container-sccache:

x-common-definitions: &common-definitions
  stdin_open: true
  tty: true
  volumes:
    - ${COBALT_SRC:-.}:c:/code/
    - ${SCCACHE_DIR:-container-sccache}:c:/root/sccache/
  cpus: ${DOCKER_CPUS:-16}
  mem_limit: ${DOCKER_MEMLIMIT:-100000M}

x-shared-build-env: &shared-build-env
  IS_CI: ${IS_CI:-0}
  IS_DOCKER: 1
  PYTHONPATH: c:/code/
  CONFIG: ${CONFIG:-devel}
  TARGET: ${TARGET:-cobalt_install}
  NINJA_FLAGS: ${NINJA_FLAGS}
  SCCACHE: 1
  SCCACHE_DIR: c:/root/sccache
  SCCACHE_CACHE_SIZE: "30G"

services:

  # ----------------------------------------
  # Base images for Visual Studio dependency
  # ----------------------------------------

  visual-studio-base:
    build:
      context: ./docker/windows/base/visualstudio2022
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2019
    image: visual-studio-base
    scale: 0

  visual-studio-win32-base:
    build:
      context: ./docker/windows/base/visualstudio2022
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=mcr.microsoft.com/windows:1809
    image: visual-studio-win32-base
    scale: 0
  # -----------------------------------------------
  # Cobalt-Build images for windows-based platforms
  # -----------------------------------------------

  cobalt-build-win-base:
    build:
      context: ./docker/windows/base/build
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=visual-studio-base
    image: cobalt-build-win-base
    scale: 0
    depends_on:
      - visual-studio-base

  cobalt-build-win32-base:
    build:
      context: ./docker/windows/base/build
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=visual-studio-win32-base
    image: cobalt-build-win32-base
    scale: 0
    depends_on:
      - visual-studio-win32-base

  build-win-win32:
    <<: *common-definitions
    build:
      context: ./docker/windows/win32
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=cobalt-build-win32-base
    depends_on:
      - cobalt-build-win32-base
    image: cobalt-build-win-win32

  build-xb1:
    <<: *common-definitions
    build:
      context: ./docker/windows/xb1
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=cobalt-build-win-base
    depends_on:
      - cobalt-build-win-base
    image: cobalt-build-xb1

  # -----------------------------------------
  # Win32 Platform Images for Building Cobalt
  # -----------------------------------------

  win-win32:
    <<: *common-definitions
    build:
      context: ./docker/windows/win32
      dockerfile: ./Dockerfile
      args:
        - FROM_IMAGE=cobalt-build-win32-base
    depends_on:
      - cobalt-build-win32-base
    environment:
      <<: *shared-build-env
      PLATFORM: win-win32
    image: cobalt-build-win32

  xb1:
    <<: *common-definitions
    environment:
      <<: *shared-build-env
      PLATFORM: xb1
      COBALT_CONCURRENT_LINKS: ${COBALT_CONCURRENT_LINKS:-2}
    image: cobalt-build-xb1
    depends_on:
      - build-xb1

  runner-win-win32:
    <<: *common-definitions
    build:
      context: ./docker/windows/runner
      dockerfile: ./Dockerfile
      args:
        - RUNNER_VERSION=2.294.0
        - FROM_IMAGE=cobalt-build-win-win32
    depends_on:
      - cobalt-build-win32-base
    image: cobalt-runner-win-win32

  runner-xb1:
    <<: *common-definitions
    build:
      context: ./docker/windows/runner
      dockerfile: ./Dockerfile
      args:
        - RUNNER_VERSION=2.294.0
        - FROM_IMAGE=cobalt-build-xb1
    depends_on:
      - xb1
    image: cobalt-runner-xb1
