Refactor CI workflow to use Homebrew for GDAL installation and update Python version to 3.13.1

This commit is contained in:
pacnpal
2025-02-06 11:55:43 -05:00
parent 185af7fd17
commit 19852207f6

View File

@@ -2,76 +2,40 @@ name: Django CI
on: on:
push: push:
branches: [ "main" ] branches: [ main ]
pull_request: pull_request:
branches: [ "main" ] branches: [ main ]
jobs: jobs:
build: test:
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
strategy: strategy:
max-parallel: 4
matrix: matrix:
python-version: [3.12] os: [ubuntu-latest, macos-latest]
python-version: [3.13.1]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Homebrew on Linux
if: runner.os == 'Linux'
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
- name: Install GDAL with Homebrew
run: brew install gdal
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v4
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Install GDAL Dependencies
run: |
sudo apt-get update
sudo apt-get install -y gdal-bin libgdal-dev
sudo ldconfig
- name: Configure Django GDAL Settings
run: |
echo "from thrillwiki.settings import *" > ci_settings.py
echo "GDAL_LIBRARY_PATH = '/usr/lib/x86_64-linux-gnu/libgdal.so'" >> ci_settings.py
echo "GEOS_LIBRARY_PATH = '/usr/lib/x86_64-linux-gnu/libgeos_c.so'" >> ci_settings.py
- name: Set GDAL Environment
run: |
echo "CPLUS_INCLUDE_PATH=/usr/include/gdal" >> $GITHUB_ENV
echo "C_INCLUDE_PATH=/usr/include/gdal" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu" >> $GITHUB_ENV
GDAL_VERSION=$(gdal-config --version)
echo "GDAL_VERSION=$GDAL_VERSION" >> $GITHUB_ENV
echo "GDAL_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libgdal.so" >> $GITHUB_ENV
echo "DJANGO_SETTINGS_MODULE=ci_settings" >> $GITHUB_ENV
- name: Debug GDAL Installation
run: |
ls -l /usr/lib/x86_64-linux-gnu/libgdal*
ls -l /usr/lib/x86_64-linux-gnu/libgeos*
gdal-config --version
gdal-config --libs
echo "Python path:" $PYTHONPATH
echo "Settings module:" $DJANGO_SETTINGS_MODULE
- name: Setup Python and pip
run: |
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py --break-system-packages
python -m pip --version
- name: Install Dependencies - name: Install Dependencies
env:
GDAL_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu/libgdal.so
run: | run: |
python -m pip install --upgrade pip setuptools wheel python -m pip install --upgrade pip
GDAL_VERSION=$(gdal-config --version) pip install -r requirements.txt
python -m pip install GDAL==$GDAL_VERSION --global-option=build_ext --global-option="-I/usr/include/gdal"
python -m pip install -r requirements.txt
- name: Verify GDAL Installation
run: |
pwd
ls -la
python -c "import os; print('GDAL_LIBRARY_PATH:', os.getenv('GDAL_LIBRARY_PATH'))"
python -c "import os; print('DJANGO_SETTINGS_MODULE:', os.getenv('DJANGO_SETTINGS_MODULE'))"
python -c "from osgeo import gdal; print('GDAL Version:', gdal.__version__)"
python -c "import django; from django.conf import settings; print('Django Settings Module:', settings.SETTINGS_MODULE)"
- name: Run Tests - name: Run Tests
env:
GDAL_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu/libgdal.so
DJANGO_SETTINGS_MODULE: ci_settings
run: | run: |
PYTHONPATH=$PYTHONPATH:. python manage.py test python manage.py test