xref: /aosp_15_r20/external/skia/infra/bots/build_task_drivers.sh (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1#!/bin/bash
2# Copyright 2022 Google LLC
3#
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6#
7# Takes two arguments.
8#   First argument is the output directory where executables are to be placed.
9#   Second (optional) argument is the target platform. These are formatted as os_arch
10#   https://github.com/bazelbuild/rules_go/blob/e9a7054ff11a520e3b8aceb76a3ba44bb8da4c94/go/toolchain/toolchains.bzl#L22
11
12set -x -e
13
14# Navigate to the root of the infra checkout.
15cd $(dirname ${BASH_SOURCE[0]})
16cd ../..
17
18PLATFORM=${2:-linux_amd64} # use linux_amd64 if not specified
19
20# Build the executables and extract them to the folder in the first argument.
21# We specify the cache directory to be somewhere other than the default (home directory)
22# Because the home directory is mounted on / which typically does not have a lot of disk space.
23# /mnt/pd0 is the bigger disk mounted to the GCE VM.
24# https://bazel.build/docs/output_directories#layout
25bazelisk --output_user_root=/mnt/pd0/bazel_cache \
26    build //infra/bots:all_task_drivers --platforms=@io_bazel_rules_go//go/toolchain:${PLATFORM} \
27    --config=linux_rbe --jobs=100
28
29tar -xf bazel-bin/infra/bots/built_task_drivers.tar -C ${1}
30# Bazel outputs are write-protected, so we make sure everybody can write them. This way there
31# are no expected errors in deleting them later.
32chmod 0777 ${1}/*
33