Skip to content

Commit 0e8d00b

Browse files
q10facebook-github-bot
authored andcommitted
Install conda using Miniforge (#4178)
Summary: X-link: facebookresearch/FBGEMM#1260 - Install conda using Miniforge instead of Miniconda to avoid flaky rate limit issues with Anaconda coming from the ROCm CI runners Pull Request resolved: #4178 Reviewed By: spcyppt Differential Revision: D75265471 Pulled By: q10 fbshipit-source-id: 9d0b876764f1ffe633ffba63d71a9c32faa8176f
1 parent f907e34 commit 0e8d00b

File tree

1 file changed

+39
-20
lines changed

1 file changed

+39
-20
lines changed

.github/scripts/utils_conda.bash

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,29 @@ conda_cleanup () {
1919
(print_exec conda clean --all -y) || return 1
2020
}
2121

22+
__download_install_miniconda () {
23+
echo "[SETUP] Downloading the Miniconda installer ..."
24+
(exec_with_retries 3 wget -q "https://repo.anaconda.com/miniconda/Miniconda3-latest-${PLATFORM_NAME}.sh" -O miniconda.sh) || return 1
25+
26+
echo "[SETUP] Installing Miniconda ..."
27+
print_exec bash miniconda.sh -b -p "$conda_install_prefix" -u
28+
print_exec rm -f miniconda.sh
29+
}
30+
31+
__download_install_miniforge () {
32+
echo "[SETUP] Downloading the Miniforge installer ..."
33+
MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
34+
(exec_with_retries 3 wget -q "$MINIFORGE_URL" -O miniforge.sh) || return 1
35+
36+
echo "[SETUP] Installing Miniforge ..."
37+
print_exec bash miniforge.sh -b -p "$conda_install_prefix" -u
38+
print_exec rm -f miniforge.sh
39+
}
40+
2241
setup_miniconda () {
23-
local miniconda_prefix="$1"
24-
if [ "$miniconda_prefix" == "" ]; then
25-
echo "Usage: ${FUNCNAME[0]} MINICONDA_PREFIX_PATH"
42+
conda_install_prefix="$1"
43+
if [ "$conda_install_prefix" == "" ]; then
44+
echo "Usage: ${FUNCNAME[0]} conda_install_prefix_PATH"
2645
echo "Example:"
2746
echo " setup_miniconda /home/user/tmp/miniconda"
2847
return 1
@@ -37,23 +56,23 @@ setup_miniconda () {
3756

3857
test_network_connection || return 1
3958

40-
if [ -f "${miniconda_prefix}/bin/conda" ]; then
41-
echo "[SETUP] A Miniconda installation appears to already exist in ${miniconda_prefix} ..."
42-
echo "[SETUP] Clearing out directory: ${miniconda_prefix} ..."
43-
print_exec rm -rf "${miniconda_prefix}"
59+
if [ -f "${conda_install_prefix}/bin/conda" ]; then
60+
echo "[SETUP] A Conda installation appears to already exist in ${conda_install_prefix} ..."
61+
echo "[SETUP] Clearing out directory: ${conda_install_prefix} ..."
62+
print_exec rm -rf "${conda_install_prefix}"
4463
fi
4564

46-
print_exec mkdir -p "$miniconda_prefix"
65+
print_exec mkdir -p "$conda_install_prefix"
4766

48-
echo "[SETUP] Downloading the Miniconda installer ..."
49-
(exec_with_retries 3 wget -q "https://repo.anaconda.com/miniconda/Miniconda3-latest-${PLATFORM_NAME}.sh" -O miniconda.sh) || return 1
50-
51-
echo "[SETUP] Installing Miniconda ..."
52-
print_exec bash miniconda.sh -b -p "$miniconda_prefix" -u
53-
print_exec rm -f miniconda.sh
67+
# NOTE: There is a flaky rate limit issue with Anaconda coming from the ROCm
68+
# CI runners, and so to work around this, we install Conda through Miniforge
69+
# instead of Miniconda, as it defaults to using conda-forge channel for all
70+
# package installations.
71+
# __download_install_miniconda
72+
__download_install_miniforge
5473

5574
echo "[SETUP] Reloading the bash configuration ..."
56-
print_exec "${miniconda_prefix}/bin/conda" init bash
75+
print_exec "${conda_install_prefix}/bin/conda" init bash
5776
print_exec . ~/.bashrc
5877

5978
# https://medium.com/data-tyro/resolving-the-conda-libmamba-issue-and-environment-activation-trouble-9f911a6106a4
@@ -77,16 +96,16 @@ setup_miniconda () {
7796

7897
# These variables will be exported outside
7998
echo "[SETUP] Exporting Miniconda variables ..."
80-
export PATH="${miniconda_prefix}/bin:${PATH}"
81-
export CONDA="${miniconda_prefix}"
99+
export PATH="${conda_install_prefix}/bin:${PATH}"
100+
export CONDA="${conda_install_prefix}"
82101

83102
if [ -f "${GITHUB_PATH}" ]; then
84103
echo "[SETUP] Saving Miniconda variables to ${GITHUB_PATH} ..."
85-
echo "${miniconda_prefix}/bin" >> "${GITHUB_PATH}"
86-
echo "CONDA=${miniconda_prefix}" >> "${GITHUB_PATH}"
104+
echo "${conda_install_prefix}/bin" >> "${GITHUB_PATH}"
105+
echo "CONDA=${conda_install_prefix}" >> "${GITHUB_PATH}"
87106
fi
88107

89-
echo "[SETUP] Successfully set up Miniconda at ${miniconda_prefix}"
108+
echo "[SETUP] Successfully set up Miniconda at ${conda_install_prefix}"
90109
}
91110

92111
__handle_pyopenssl_version_issue () {

0 commit comments

Comments
 (0)