steps:
    - name: "ghcr.io/project-chip/chip-build-vscode:81"
      entrypoint: "bash"
      args:
          - "-c"
          - |
              git config --global --add safe.directory "*"
              python scripts/checkout_submodules.py --shallow --recursive --platform esp32 nrfconnect silabs linux android 
      id: Submodules
    - name: "ghcr.io/project-chip/chip-build-vscode:81"
      # NOTE: silabs boostrap is NOT done with the rest as it requests a conflicting
      #       jinja2 version (asks for 3.1.3 when constraints.txt asks for 3.0.3)
      env:
          - PW_ENVIRONMENT_ROOT=/pwenv
      args:
          - "-c"
          - source ./scripts/bootstrap.sh -p all,esp32,nrfconnect,linux,android
      id: Bootstrap
      waitFor:
          - Submodules
      entrypoint: /usr/bin/bash
      volumes:
          - name: pwenv
            path: /pwenv
      timeout: 900s
    - name: "ghcr.io/project-chip/chip-build-vscode:81"
      env:
          - PW_ENVIRONMENT_ROOT=/pwenv
      args:
          - >-
              perl -i -pe 's/^gdbgui==/# gdbgui==/' /opt/espressif/esp-idf/requirements.txt &&
              ./examples/chef/chef.py --build_all --build_exclude noip
      id: CompileAll
      waitFor:
          - Bootstrap
      entrypoint: ./scripts/run_in_build_env.sh
      volumes:
          - name: pwenv
            path: /pwenv

    - name: "ghcr.io/project-chip/chip-build-vscode:81"
      env:
          - PW_ENVIRONMENT_ROOT=/pwenv
      args:
          - ./examples/chef/chef.py --build_all --build_include
            linux_arm64_ipv6only.*noip
      # Temporarely allow failure since this is known to fail:
      #   AppMain tries to setup commissioning in general (even if all things are
      #   disabled, ethernet assumes network commissioning cluster) and link fails
      #   when the cluster is fully disabled
      # TODO: completely remove this target or fix compilation
      allowFailure: true
      id: CompileNoip
      waitFor:
          - CompileAll
      entrypoint: ./scripts/run_in_build_env.sh
      volumes:
          - name: pwenv
            path: /pwenv

    - name: "gcr.io/cloud-builders/docker"
      args:
          [
              "/workspace/examples/chef/create_docker.py",
              "--commit_sha",
              "$COMMIT_SHA",
              "--short_sha",
              "$SHORT_SHA",
              "--revision_id",
              "$REVISION_ID",
              "--build_id",
              "$BUILD_ID",
              "--image_name",
              "$_DOCKER_IMAGE_NAME",
              "--tar_path",
              "/workspace/artifacts",
          ]
      id: DockerAll
      entrypoint: python3
      waitFor:
          - CompileNoip

logsBucket: matter-build-automation-build-logs

# Global timeout for all steps
timeout: 36000s
queueTtl: 21600s

artifacts:
    objects:
        location: "gs://matter-build-automation-artifacts/$PROJECT_ID/$COMMIT_SHA/"
        paths: ["/workspace/artifacts/*.tar.gz"]
# Using higher CPU machines generally speeds up builds, except bootstrap is always
# slow.
options:
    machineType: "E2_HIGHCPU_32"
    diskSizeGb: 500
