mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-23 14:52:26 +00:00
55 lines
1.5 KiB
Bash
Executable File
55 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/
|
|
set -euxo pipefail
|
|
|
|
# Basic Python packages that you just need to have around to do anything,
|
|
# practically speaking.
|
|
BASIC_DEPS="pip wheel"
|
|
|
|
# Python packages we need to support the test infrastructure. *Not* packages
|
|
# Tahoe-LAFS itself (implementation or test suite) need.
|
|
TEST_DEPS="tox codecov"
|
|
|
|
# Python packages we need to generate test reports for CI infrastructure.
|
|
# *Not* packages Tahoe-LAFS itself (implement or test suite) need.
|
|
REPORTING_DEPS="python-subunit junitxml subunitreporter"
|
|
|
|
# The filesystem location of the wheelhouse which we'll populate with wheels
|
|
# for all of our dependencies.
|
|
WHEELHOUSE_PATH="$1"
|
|
shift
|
|
|
|
# The filesystem location of the root of a virtualenv we can use to get/build
|
|
# wheels.
|
|
BOOTSTRAP_VENV="$1"
|
|
shift
|
|
|
|
# The filesystem location of the root of the project source. We need this to
|
|
# know what wheels to get/build, of course.
|
|
PROJECT_ROOT="$1"
|
|
shift
|
|
|
|
# For convenience.
|
|
PIP="${BOOTSTRAP_VENV}/bin/pip"
|
|
|
|
# Tell pip where it can find any existing wheels.
|
|
export PIP_FIND_LINKS="file://${WHEELHOUSE_PATH}"
|
|
|
|
# Populate the wheelhouse, if necessary.
|
|
"${PIP}" \
|
|
wheel \
|
|
--wheel-dir "${WHEELHOUSE_PATH}" \
|
|
"${PROJECT_ROOT}"[test] \
|
|
${BASIC_DEPS} \
|
|
${TEST_DEPS} \
|
|
${REPORTING_DEPS}
|
|
|
|
# Not strictly wheelhouse population but ... Note we omit basic deps here.
|
|
# They're in the wheelhouse if Tahoe-LAFS wants to drag them in but it will
|
|
# have to ask.
|
|
"${PIP}" \
|
|
install \
|
|
${TEST_DEPS} \
|
|
${REPORTING_DEPS}
|