xref: /aosp_15_r20/external/executorch/.ci/docker/common/utils.sh (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker#!/bin/bash
2*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
3*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
4*523fa7a6SAndroid Build Coastguard Worker#
5*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
6*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
7*523fa7a6SAndroid Build Coastguard Worker
8*523fa7a6SAndroid Build Coastguard Workeras_ci_user() {
9*523fa7a6SAndroid Build Coastguard Worker  # NB: unsetting the environment variables works around a conda bug
10*523fa7a6SAndroid Build Coastguard Worker  #     https://github.com/conda/conda/issues/6576
11*523fa7a6SAndroid Build Coastguard Worker  # NB: Pass on PATH and LD_LIBRARY_PATH to sudo invocation
12*523fa7a6SAndroid Build Coastguard Worker  # NB: This must be run from a directory that the user has access to
13*523fa7a6SAndroid Build Coastguard Worker  sudo -E -H -u ci-user env -u SUDO_UID -u SUDO_GID -u SUDO_COMMAND -u SUDO_USER env "PATH=${PATH}" "LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}" "$@"
14*523fa7a6SAndroid Build Coastguard Worker}
15*523fa7a6SAndroid Build Coastguard Worker
16*523fa7a6SAndroid Build Coastguard Workerconda_install() {
17*523fa7a6SAndroid Build Coastguard Worker  # Ensure that the install command don't upgrade/downgrade Python
18*523fa7a6SAndroid Build Coastguard Worker  # This should be called as
19*523fa7a6SAndroid Build Coastguard Worker  #   conda_install pkg1 pkg2 ... [-c channel]
20*523fa7a6SAndroid Build Coastguard Worker  as_ci_user conda install -q -n "py_${PYTHON_VERSION}" -y python="${PYTHON_VERSION}" "$@"
21*523fa7a6SAndroid Build Coastguard Worker}
22*523fa7a6SAndroid Build Coastguard Worker
23*523fa7a6SAndroid Build Coastguard Workerconda_run() {
24*523fa7a6SAndroid Build Coastguard Worker  as_ci_user conda run -n "py_${PYTHON_VERSION}" --no-capture-output "$@"
25*523fa7a6SAndroid Build Coastguard Worker}
26*523fa7a6SAndroid Build Coastguard Worker
27*523fa7a6SAndroid Build Coastguard Workerpip_install() {
28*523fa7a6SAndroid Build Coastguard Worker  as_ci_user conda run -n "py_${PYTHON_VERSION}" pip install --progress-bar off "$@"
29*523fa7a6SAndroid Build Coastguard Worker}
30