| # 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: [ build-base ] |
| 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-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: |
| 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 ] |