blob: 794cdc0243c353d8b461147e80152253cc9c36da [file] [log] [blame]
# 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:
container-starboard-toolchains:
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
- ${STARBOARD_TOOLCHAINS_DIR:-container-starboard-toolchains}:/root/starboard-toolchains
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}
services:
base:
build:
args:
- BASE_OS
context: ./docker/linux
dockerfile: base/Dockerfile
image: cobalt-base
scale: 0
base-xenial:
build:
args:
- BASE_OS=ubuntu
- BASE_OS_TAG=xenial
context: ./docker/linux
dockerfile: base/Dockerfile
image: base-xenial
scale: 0
# Define common build container for Linux
build-base:
build:
context: ./docker/linux
dockerfile: base/build/Dockerfile
image: cobalt-build-base
depends_on:
- base
scale: 0
build-base-xenial:
build:
context: ./docker/linux
dockerfile: base/build/Dockerfile
args:
- FROM_IMAGE=base-xenial
image: build-base-xenial
depends_on:
- base-xenial
scale: 0
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}
stub-gn:
<<: *build-common-definitions
build:
context: ./docker/linux
dockerfile: stub/gn/Dockerfile
image: cobalt-build-linux-stub-gn
depends_on: [ stub ]
environment:
<<: *shared-build-env
PLATFORM: stub
CONFIG: ${CONFIG:-debug}
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}
linux-x64x11-gn:
<<: *build-common-definitions
build:
context: ./docker/linux
dockerfile: linux-x64x11/gn/Dockerfile
image: cobalt-build-linux-gn
depends_on: [ linux-x64x11 ]
environment:
<<: *shared-build-env
PLATFORM: linux-x64x11
CONFIG: ${CONFIG:-debug}
linux-x64x11-xenial:
<<: *common-definitions
<<: *build-volumes
build:
context: ./docker/linux
dockerfile: linux-x64x11/Dockerfile
args:
- FROM_IMAGE=build-base-xenial
image: linux-x64x11-xenial
depends_on:
- build-base-xenial
scale: 0
linux-x64x11-clang-3-6:
<<: *common-definitions
<<: *build-volumes
build:
context: ./docker/linux/
dockerfile: clang-3-6/Dockerfile
image: cobalt-build-linux-clang-3-6
environment:
<<: *shared-build-env
PLATFORM: linux-x64x11-clang-3-6
CONFIG: ${CONFIG:-debug}
depends_on:
- linux-x64x11-xenial
linux-x64x11-clang-3-6-prebuilt:
<<: *common-definitions
<<: *build-volumes
image: gcr.io/cobalt-tools/build-cobalt-linux-x64x11-clang-3-6:1.3
environment:
<<: *shared-build-env
PLATFORM: linux-x64x11-clang-3-6
CONFIG: ${CONFIG:-debug}
USE_CCACHE: ${USE_CCACHE:-1}
NINJA_STATUS: ${NINJA_STATUS}
# 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
IS_DOCKER: 1
PLATFORM: android-x86
CONFIG: ${CONFIG:-debug}
android-arm:
<<: *build-common-definitions
image: cobalt-build-android
depends_on: [ build-android ]
environment:
<<: *shared-build-env
IS_DOCKER: 1
PLATFORM: android-arm
CONFIG: ${CONFIG:-debug}
android-arm64:
<<: *build-common-definitions
image: cobalt-build-android
depends_on: [ build-android ]
environment:
<<: *shared-build-env
IS_DOCKER: 1
PLATFORM: android-arm64
CONFIG: ${CONFIG:-debug}
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
environment:
<<: *shared-build-env
evergreen-x64:
<<: *build-common-definitions
image: cobalt-build-evergreen
depends_on: [ build-evergreen ]
environment:
<<: *shared-build-env
PLATFORM: evergreen-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
evergreen-x86:
<<: *build-common-definitions
image: cobalt-build-evergreen
depends_on: [ build-evergreen ]
environment:
<<: *shared-build-env
PLATFORM: evergreen-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
evergreen-arm64:
<<: *build-common-definitions
image: cobalt-build-evergreen
depends_on: [ build-evergreen ]
environment:
<<: *shared-build-env
PLATFORM: evergreen-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
evergreen-arm-hardfp:
<<: *build-common-definitions
image: cobalt-build-evergreen
depends_on: [ build-evergreen ]
environment:
<<: *shared-build-env
PLATFORM: evergreen-arm-hardfp
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
evergreen-arm-softfp:
<<: *build-common-definitions
image: cobalt-build-evergreen
depends_on: [ build-evergreen ]
environment:
<<: *shared-build-env
PLATFORM: evergreen-arm-softfp
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
unittest:
<<: *common-definitions
build:
context: ./docker/linux
dockerfile: unittest/Dockerfile
image: cobalt-unittest
environment:
- PLATFORM=${PLATFORM:-linux-x64x11}
- CONFIG=${CONFIG:-debug}
volumes:
- ${COBALT_SRC:-.}/out/${PLATFORM:-linux-x64x11}_${CONFIG:-debug}:/out
# TODO: Get NPLB unittests to run with IPv6 without using the host network.
network_mode: "host"
depends_on: [ base ]