From 2fe77c8bc10d6d680febaf972316ed5724710792 Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Thu, 25 Sep 2025 12:07:26 -1000 Subject: [PATCH] ci: Build on macOS 26 --- .github/workflows/build.yaml | 2 +- .tool-versions | 1 + scripts/environment.sh | 17 +++++++++++------ scripts/install-dependencies.sh | 28 ++++++++++++++++++++++------ 4 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 .tool-versions 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