# Copyright 2021 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

steps:
  - label: ":zap: Build with tracing enabled"
    commands:
      - "git submodule sync && git submodule update --init --jobs 8 --depth 1"
      - "docker run --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/base@sha256:ec10501f22c04c2199c68df5f6782946224fb63568e2a1701ddb3c4928a42bb5 ./build_tools/cmake/build_tracing.sh"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"

  - label: ":hammer_and_wrench: Build the runtime only"
    commands:
      - "git submodule sync && git submodule update --init --jobs 8 --depth 1"
      - "docker run --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/base@sha256:ec10501f22c04c2199c68df5f6782946224fb63568e2a1701ddb3c4928a42bb5 ./build_tools/cmake/build_runtime.sh"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"

  - label: ":pinching_hand: Build the size-optimized runtime only"
    commands:
      - "git submodule sync && git submodule update --init --jobs 8 --depth 1"
      - "docker run --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/base@sha256:ec10501f22c04c2199c68df5f6782946224fb63568e2a1701ddb3c4928a42bb5 ./build_tools/cmake/build_runtime_small.sh"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"

  - label: ":gnu: Build with GCC"
    key: "build-gcc"
    commands:
      - "git submodule sync && git submodule update --init --jobs 8 --depth 1"
      - "docker run --env CC=/usr/bin/gcc-9 --env CXX=/usr/bin/g++-9 --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/base@sha256:ec10501f22c04c2199c68df5f6782946224fb63568e2a1701ddb3c4928a42bb5 ./build_tools/cmake/clean_build.sh"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"

  - label: ":linux: Build host install"
    key: "build-host-install"
    commands:
      - "git submodule sync && git submodule update --init --jobs 8 --depth 1"
      - "docker run --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/base@sha256:ec10501f22c04c2199c68df5f6782946224fb63568e2a1701ddb3c4928a42bb5 ./build_tools/cmake/build_host_install.sh"
      - "tar -czvf build-artifacts.tgz build-host/install"
    artifact_paths: "build-artifacts.tgz"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"

  - label: ":webassembly: Build WebAssembly runtime with Emscripten"
    depends_on: "build-host-install"
    commands:
      - "buildkite-agent artifact download --step build-host-install build-artifacts.tgz ./"
      - "tar xzf build-artifacts.tgz"
      - "git submodule update --init --jobs 8 --depth 1"
      - "docker run --user=$(id -u):$(id -g) --volume=\\$PWD:\\$IREE_DOCKER_WORKDIR --workdir=\\$IREE_DOCKER_WORKDIR --rm gcr.io/iree-oss/emscripten@sha256:60daf8bdb36e7e120687197d07f41aebd4965805dbb9f2978622cc36f0a90840 ./build_tools/cmake/build_runtime_emscripten.sh"
    env:
      IREE_DOCKER_WORKDIR: "/usr/src/github/iree"
    agents:
      - "queue=build"
