diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6e3a0ab..9340bff 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -13,7 +13,7 @@ jobs: test: name: build - runs-on: inseven-macos-14 + runs-on: inseven-macos-26 steps: diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..f1c0c50 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +python 3.12.1 diff --git a/scripts/environment.sh b/scripts/environment.sh index 13d77a4..35660c3 100755 --- a/scripts/environment.sh +++ b/scripts/environment.sh @@ -20,12 +20,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +ROOT_DIRECTORY="$( cd "$( dirname "$( dirname "${BASH_SOURCE[0]}" )" )" &> /dev/null && pwd )" +SCRIPTS_DIRECTORY="$ROOT_DIRECTORY/scripts" -SCRIPTS_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -ROOT_DIRECTORY="${SCRIPTS_DIRECTORY}/.." +export LOCAL_TOOLS_PATH="$ROOT_DIRECTORY/.local" -export PYTHONUSERBASE="${ROOT_DIRECTORY}/.local/python" -mkdir -p "$PYTHONUSERBASE" -export PATH="${PYTHONUSERBASE}/bin":$PATH +export BIN_DIRECTORY="$ROOT_DIRECTORY/.local/bin" +export PATH=$BIN_DIRECTORY:$PATH -export PATH=$PATH:"${SCRIPTS_DIRECTORY}/changes" +source "$LOCAL_TOOLS_PATH/python/bin/activate" + +export PIPENV_VENV_IN_PROJECT=1 +export PIPENV_IGNORE_VIRTUALENVS=1 + +export PATH=$PATH:"$SCRIPTS_DIRECTORY/changes" diff --git a/scripts/install-dependencies.sh b/scripts/install-dependencies.sh index 79de4f6..db66820 100755 --- a/scripts/install-dependencies.sh +++ b/scripts/install-dependencies.sh @@ -25,13 +25,29 @@ set -o pipefail set -x set -u -SCRIPTS_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -ROOT_DIRECTORY="${SCRIPTS_DIRECTORY}/.." -CHANGES_DIRECTORY="${SCRIPTS_DIRECTORY}/changes" +ROOT_DIRECTORY="$( cd "$( dirname "$( dirname "${BASH_SOURCE[0]}" )" )" &> /dev/null && pwd )" +SCRIPTS_DIRECTORY="$ROOT_DIRECTORY/scripts" -ENVIRONMENT_PATH="${SCRIPTS_DIRECTORY}/environment.sh" +LOCAL_TOOLS_PATH="$ROOT_DIRECTORY/.local" +CHANGES_DIRECTORY="$SCRIPTS_DIRECTORY/changes" +BUILD_TOOLS_DIRECTORY="$SCRIPTS_DIRECTORY/build-tools" -source "$ENVIRONMENT_PATH" +# Install tools defined in `.tool-versions`. +cd "$ROOT_DIRECTORY" +mise install -# Install the Python dependencies +# Clean up and recreate the local tools directory. +if [ -d "$LOCAL_TOOLS_PATH" ] ; then + rm -r "$LOCAL_TOOLS_PATH" +fi +mkdir -p "$LOCAL_TOOLS_PATH" + +# Set up a Python venv to bootstrap our python dependency on `pipenv`. +python -m venv "$LOCAL_TOOLS_PATH/python" + +# Source `environment.sh` to ensure the remainder of our paths are set up correctly. +source "$SCRIPTS_DIRECTORY/environment.sh" + +# Install the Python dependencies. +pip install --upgrade pip pipenv wheel certifi PIPENV_PIPFILE="$CHANGES_DIRECTORY/Pipfile" pipenv install