# 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:
  android-debug-keystore:
  container-ccache:

x-common-definitions: &common-definitions
  stdin_open: true
  tty: true

x-build-volumes: &build-volumes
  volumes:
    - ${COBALT_SRC:-.}:/code/
    - android-debug-keystore:/root/.android/
    - ${CCACHE_DIR:-container-ccache}:/root/ccache

x-build-common-definitions: &build-common-definitions
  <<: *common-definitions
  <<: *build-volumes
  depends_on:
    - build-base

x-shared-build-env: &shared-build-env
  NINJA_PARALLEL: ${NINJA_PARALLEL:-32}
  IS_CI: ${IS_CI:-0}
  IS_DOCKER: 1
  PYTHONPATH: /code

x-shared-docsite-definitions: &shared-docsite-definitions
  <<: *build-common-definitions
  build:
    context: ./docker/docsite
    dockerfile: Dockerfile
    args:
      - USER=root
      - UID=2000
      - GID=2000
  environment:
    <<: *shared-build-env

x-shared-unittest-definitions: &shared-unittest-definitions
  stdin_open: true
  tty: true
  build:
    context: ./docker/linux
    dockerfile: unittest/Dockerfile
  image: cobalt-linux-x64x11-unittest
  environment:
    - PLATFORM=${PLATFORM:-linux-x64x11}
    - CONFIG=${CONFIG:-devel}
  volumes:
    - ${COBALT_SRC:-.}/out/${PLATFORM:-linux-x64x11}_${CONFIG:-devel}:/out
    - ${COBALT_SRC:-.}/out/${PLATFORM:-linux-x64x11}_${CONFIG:-devel}/testoutput:/tmp/testoutput
  # TODO: Get NPLB unittests to run with IPv6 without using the host network.
  network_mode: "host"
  depends_on: [ base ]

services:
#### Tools
  pre-commit:
    build:
      context: ./docker/precommit_hooks
      dockerfile: Dockerfile
    image: pre-commit
    volumes:
    - ${COBALT_SRC:-.}:/code/
    environment:
      FROM_REF: ${FROM_REF:-HEAD^1}
      TO_REF: ${TO_REF:-HEAD}

  pytest:
    build:
      context: ./docker/pytest
      dockerfile: Dockerfile
    image: cobalt-build-pytest
    volumes:
    - ${COBALT_SRC:-.}:/code/
    depends_on:
      - base

#### Cobalt build containers
  base:
    build:
      args:
        - BASE_OS
      context: ./docker/linux
      dockerfile: base/Dockerfile
    image: cobalt-base
    scale: 0

  base-bionic:
    build:
      args:
        - BASE_OS=gcr.io/cloud-marketplace-containers/google/ubuntu1804
        - BASE_OS_TAG=latest
      context: ./docker/linux
      dockerfile: base/Dockerfile
    image: base-bionic
    scale: 0

  # Define common build container for Linux
  build-base:
    build:
      context: ./docker/linux
      dockerfile: base/build/Dockerfile
      args:
        # Should match version pinned by Starboard
        - CLANG_VER=${CLANG_VER:-365097-f7e52fbd-8}
    image: cobalt-build-base
    depends_on:
      - base
    scale: 0

  build-base-bionic:
    build:
      context: ./docker/linux
      dockerfile: base/build/Dockerfile
      args:
        - FROM_IMAGE=base-bionic
        - CLANG_VER=${CLANG_VER:-365097-f7e52fbd-8}
    image: build-base-bionic
    depends_on:
      - base-bionic
    scale: 0

  docsite:
    <<: *shared-docsite-definitions
    image: cobalt-build-docsite
    ports:
      # The docsite webapp runs on port 4000.
      - "4000:4000"

  docsite-deploy:
    <<: *shared-docsite-definitions
    image: cobalt-build-docsite-deploy
    entrypoint: ["/code/third_party/internal/repo-publishing-toolkit-local/preview-site.sh", "deploy"]

  build-linux-stub:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: stub/Dockerfile
    image: cobalt-build-linux-stub
    depends_on: [ build-base ]
    environment:
      <<: *shared-build-env

  stub:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: stub/Dockerfile
    image: cobalt-build-linux-stub
    depends_on: [ build-base ]
    environment:
      <<: *shared-build-env
      PLATFORM: stub
      CONFIG: ${CONFIG:-debug}

  build-linux:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: linux-x64x11/Dockerfile
    image: cobalt-build-linux
    depends_on: [ build-base ]
    environment:
      <<: *shared-build-env

  linux-x64x11:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: linux-x64x11/Dockerfile
    image: cobalt-build-linux
    depends_on: [ build-base ]
    environment:
      <<: *shared-build-env
      PLATFORM: linux-x64x11
      CONFIG: ${CONFIG:-debug}
      TARGET: ${TARGET:-cobalt_install}

  linux-x64x11-bionic:
    <<: *common-definitions
    <<: *build-volumes
    build:
      context: ./docker/linux
      dockerfile: linux-x64x11/Dockerfile
      args:
        - FROM_IMAGE=build-base-bionic
    image: linux-x64x11-bionic
    depends_on:
      - build-base-bionic
    scale: 0

  linux-x64x11-gcc:
    <<: *common-definitions
    <<: *build-volumes
    build:
      context: ./docker/linux
      dockerfile: gcc-6-3/Dockerfile
    image: cobalt-build-linux-gcc
    environment:
      <<: *shared-build-env
      PLATFORM: linux-x64x11-gcc-6-3
      CONFIG: ${CONFIG:-debug}
    depends_on:
      - linux-x64x11-bionic

  build-linux-gcc:
    <<: *common-definitions
    <<: *build-volumes
    build:
      context: ./docker/linux
      dockerfile: gcc-6-3/Dockerfile
    image: cobalt-build-linux-gcc
    depends_on:
      - linux-x64x11-bionic

  linux-x64x11-clang-3-9:
    <<: *common-definitions
    <<: *build-volumes
    build:
      context: ./docker/linux/
      dockerfile: clang-3-9/Dockerfile
    image: cobalt-build-linux-clang-3-9
    environment:
      <<: *shared-build-env
      PLATFORM: linux-x64x11-clang-3-9
      CONFIG: ${CONFIG:-debug}
    depends_on:
      - linux-x64x11-bionic

  build-linux-clang-3-9:
    <<: *common-definitions
    <<: *build-volumes
    build:
      context: ./docker/linux/
      dockerfile: clang-3-9/Dockerfile
    image: cobalt-build-linux-clang-3-9
    depends_on:
      - linux-x64x11-bionic

  # Define common build container for Android
  build-android:
    <<: *build-common-definitions
    build:
      context: ./docker/linux/android
      dockerfile: ./Dockerfile
    image: cobalt-build-android
    scale: 0

  android-x86:
    <<: *build-common-definitions
    image: cobalt-build-android
    depends_on: [ build-android ]
    environment:
      <<: *shared-build-env
      PLATFORM: android-x86
      CONFIG: ${CONFIG:-debug}
      TARGET_CPU: ${TARGET_CPU:-x86}

  android-arm:
    <<: *build-common-definitions
    image: cobalt-build-android
    depends_on: [ build-android ]
    environment:
      <<: *shared-build-env
      PLATFORM: android-arm
      CONFIG: ${CONFIG:-debug}
      TARGET_CPU: ${TARGET_CPU:-arm}

  android-arm64:
    <<: *build-common-definitions
    image: cobalt-build-android
    depends_on: [ build-android ]
    environment:
      <<: *shared-build-env
      PLATFORM: android-arm64
      CONFIG: ${CONFIG:-debug}
      TARGET_CPU: ${TARGET_CPU:-arm64}

  build-raspi:
    <<: *build-common-definitions
    build:
      context: ./docker/linux/raspi
      dockerfile: ./Dockerfile
    image: cobalt-build-raspi
    environment:
      <<: *shared-build-env

  raspi:
    <<: *build-common-definitions
    build:
      context: ./docker/linux/raspi
      dockerfile: ./Dockerfile
    image: cobalt-build-raspi
    environment:
      <<: *shared-build-env
      PLATFORM: ${PLATFORM:-raspi-2}
      CONFIG: ${CONFIG:-debug}

  # Define common build container for Evergreen
  build-evergreen:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: evergreen/Dockerfile
    image: cobalt-build-evergreen
    depends_on: [ build-base ]
    environment:
      <<: *shared-build-env

  evergreen-x64:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-x64
      TARGET_CPU: ${TARGET_CPU:-x64}

  evergreen-x64-sbversion-12:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-x64-sbversion-12
      TARGET_CPU: ${TARGET_CPU:-x64}
      SB_API_VERSION: 12

  evergreen-x86:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-x86
      TARGET_CPU: ${TARGET_CPU:-x86}

  evergreen-x86-sbversion-12:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-x86-sbversion-12
      TARGET_CPU: ${TARGET_CPU:-x86}
      SB_API_VERSION: 12

  evergreen-arm64:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm64
      TARGET_CPU: ${TARGET_CPU:-arm64}

  evergreen-arm64-sbversion-12:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm64-sbversion-12
      TARGET_CPU: ${TARGET_CPU:-arm64}
      SB_API_VERSION: 12

  evergreen-arm-hardfp:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm-hardfp
      TARGET_CPU: ${TARGET_CPU:-arm}

  evergreen-arm-hardfp-sbversion-12:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm-hardfp-sbversion-12
      TARGET_CPU: ${TARGET_CPU:-arm}
      SB_API_VERSION: 12

  evergreen-arm-softfp:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm-softfp
      TARGET_CPU: ${TARGET_CPU:-arm}

  evergreen-arm-softfp-sbversion-12:
    <<: *build-common-definitions
    image: cobalt-build-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: evergreen-arm-softfp-sbversion-12
      TARGET_CPU: ${TARGET_CPU:-arm}
      SB_API_VERSION: 12

  # Defined common build image for linux-evergreen
  build-linux-evergreen:
    <<: *build-common-definitions
    build:
      context: ./docker/linux
      dockerfile: linux-x64x11/Dockerfile
      args:
        - FROM_IMAGE=cobalt-build-evergreen
    image: cobalt-build-linux-evergreen
    depends_on: [ build-evergreen ]
    environment:
      <<: *shared-build-env

  linux-x64x11-sbversion12-evergreen:
    <<: *build-common-definitions
    image: cobalt-build-linux-evergreen
    depends_on: [ build-linux-evergreen ]
    environment:
      <<: *shared-build-env
      PLATFORM: linux-x64x11-sbversion-12
      CONFIG: ${CONFIG:-debug}
      SB_API_VERSION: 12

  # Example usage of unittest:
  # 1. Build the containers for which you want to unittest
  # docker-compose up --build --no-start linux-x64x11 unittest
  # 2. Build the 'all' target for the platform you want to test
  # PLATFORM=linux-x64x11 CONFIG=devel TARGET=all docker-compose run linux-x64x11
  # 3. Run the unittests for that target.
  # PLATFORM=linux-x64x11 CONFIG=devel TARGET=all docker-compose run unittest
  linux-x64x11-unittest:
    <<: *shared-unittest-definitions

  # Stub container that launches all shard containers in parallel.
  linux-x64x11-unittest-parallel:
    image: cobalt-base
    entrypoint: ["/bin/sh", "-c", "echo", "done"]
    depends_on:
      - linux-x64x11-unittest-parallel-0
      - linux-x64x11-unittest-parallel-1
      - linux-x64x11-unittest-parallel-2
      - linux-x64x11-unittest-parallel-3

  linux-x64x11-unittest-parallel-0:
    <<: *shared-unittest-definitions
    entrypoint: ["python3", "/unittest_docker_launcher.py", "0"]

  linux-x64x11-unittest-parallel-1:
    <<: *shared-unittest-definitions
    entrypoint: ["python3", "/unittest_docker_launcher.py", "1"]

  linux-x64x11-unittest-parallel-2:
    <<: *shared-unittest-definitions
    entrypoint: ["python3", "/unittest_docker_launcher.py", "2"]

  linux-x64x11-unittest-parallel-3:
    <<: *shared-unittest-definitions
    entrypoint: ["python3", "/unittest_docker_launcher.py", "3"]

  xvfb:
    image: xvfb
    ports:
      - "99:99"
    image: cobalt-xvfb
    build:
      context: ./docker/linux/
      dockerfile: xvfb/Dockerfile
    depends_on: [ linux-x64x11-unittest ]

  linux-x64x11-integration-test:
    <<: *build-common-definitions
    image: cobalt-integration-test
    build:
      context: ./docker/linux/
      dockerfile: integration_test/Dockerfile
    depends_on: [ xvfb ]
    working_dir: /code
    environment:
      - DISPLAY=xvfb:99
      - IPV6_AVAILABLE=0
      - PYTHONPATH=/code
      - PLATFORM=${PLATFORM:-linux-x64x11}
      - CONFIG=${CONFIG:-devel}
