-
-
Notifications
You must be signed in to change notification settings - Fork 176
/
run_osx_build.sh.tmpl
147 lines (111 loc) · 5.01 KB
/
run_osx_build.sh.tmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/usr/bin/env bash
# -*- mode: jinja-shell -*-
source .scripts/logging_utils.sh
set -xe
MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3}
( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
MINIFORGE_FILE="Miniforge3-MacOSX-$(uname -m).sh"
curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}"
rm -rf ${MINIFORGE_HOME}
bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME}
( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
( startgroup "Configuring conda" ) 2> /dev/null
{%- if conda_build_tool == "mambabuild" %}
{%- set BUILD_CMD="conda-mambabuild" %}
{%- elif conda_build_tool == "conda-build+conda-libmamba-solver" %}
{%- set BUILD_CMD="CONDA_SOLVER=libmamba conda-build" %}
{%- elif conda_build_tool == "conda-build+classic" %}
{%- set BUILD_CMD="CONDA_SOLVER=classic conda-build" %}
{%- elif conda_build_tool == "rattler-build" %}
{%- set BUILD_CMD="rattler-build build" %}
{%- else %}
{%- set BUILD_CMD="conda-build" %}
{%- endif %}
source ${MINIFORGE_HOME}/etc/profile.d/conda.sh
conda activate base
{%- if conda_solver %}
export CONDA_SOLVER="{{ conda_solver }}"
{%- endif %}
{%- if conda_solver == "libmamba" %}
export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
{%- endif %}
{{ conda_install_tool }} install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \
pip {{ conda_install_tool_deps }} {{ conda_build_tool_deps }} {{ " ".join(remote_ci_setup) }}
{%- if conda_install_tool == "mamba" and (conda_build_tool_deps != "" or conda_install_tool_deps != "") %}
{{ conda_install_tool }} update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
pip {{ conda_install_tool_deps }} {{ conda_build_tool_deps }} {{ " ".join(remote_ci_setup_update) }}
{%- endif %}
{% if local_ci_setup %}
conda uninstall --quiet --yes --force {{ " ".join(remote_ci_setup) }}
pip install --no-deps {{ recipe_dir }}/.
{%- endif %}
echo -e "\n\nSetting up the condarc and mangling the compiler."
setup_conda_rc ./ ./{{ recipe_dir }} ./.ci_support/${CONFIG}.yaml
if [[ "${CI:-}" != "" ]]; then
mangle_compiler ./ ./{{ recipe_dir }} .ci_support/${CONFIG}.yaml
fi
if [[ "${CI:-}" != "" ]]; then
echo -e "\n\nMangling homebrew in the CI to avoid conflicts."
/usr/bin/sudo mangle_homebrew
/usr/bin/sudo -k
else
echo -e "\n\nNot mangling homebrew as we are not running in CI"
fi
if [[ "${sha:-}" == "" ]]; then
sha=$(git rev-parse HEAD)
fi
{% if build_setup -%}
echo -e "\n\nRunning the build setup script."
{{ build_setup }}
{%- endif %}
( endgroup "Configuring conda" ) 2> /dev/null
{%- if conda_build_tool != "rattler-build" %}
echo -e "\n\nMaking the build clobber file"
make_build_number ./ ./{{ recipe_dir }} ./.ci_support/${CONFIG}.yaml
{%- endif %}
if [[ -f LICENSE.txt ]]; then
cp LICENSE.txt "{{ recipe_dir }}/recipe-scripts-license.txt"
fi
if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then
{%- if conda_build_tool != "rattler-build" %}
if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then
EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}"
fi
conda debug ./{{ recipe_dir }} -m ./.ci_support/${CONFIG}.yaml \
${EXTRA_CB_OPTIONS:-} \
--clobber-file ./.ci_support/clobber_${CONFIG}.yaml
# Drop into an interactive shell
/bin/bash
{%- else %}
echo "rattler-build does not currently support debug mode"
{%- endif %}
else
{% if test in ["native", "native_and_emulated"] %}
if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then
EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test"
fi
{% endif %}
{%- if conda_build_tool != "rattler-build" %}
{{ BUILD_CMD }} ./{{ recipe_dir }} -m ./.ci_support/${CONFIG}.yaml \
--suppress-variables ${EXTRA_CB_OPTIONS:-} \
--clobber-file ./.ci_support/clobber_${CONFIG}.yaml \
--extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha"
{%- else %}
{{ BUILD_CMD }} --recipe ./{{ recipe_dir }} -m ./.ci_support/${CONFIG}.yaml --output-dir ${MINIFORGE_HOME}/conda-bld ${EXTRA_CB_OPTIONS:-}
{%- endif %}
( startgroup "Inspecting artifacts" ) 2> /dev/null
# inspect_artifacts was only added in conda-forge-ci-setup 4.6.0
command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0"
( endgroup "Inspecting artifacts" ) 2> /dev/null
{%- if conda_forge_output_validation %}
( startgroup "Validating outputs" ) 2> /dev/null
validate_recipe_outputs "${FEEDSTOCK_NAME}"
( endgroup "Validating outputs" ) 2> /dev/null
{%- endif %}
( startgroup "Uploading packages" ) 2> /dev/null
if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then
upload_package {% if conda_forge_output_validation %}--validate --feedstock-name="${FEEDSTOCK_NAME}"{% endif %}{% if private_upload %} --private{% endif %} ./ ./{{ recipe_dir }} ./.ci_support/${CONFIG}.yaml
fi
( endgroup "Uploading packages" ) 2> /dev/null
fi