From 19852207f653fa5a3e991344b014ce96a8105607 Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Thu, 6 Feb 2025 11:55:43 -0500 Subject: [PATCH] Refactor CI workflow to use Homebrew for GDAL installation and update Python version to 3.13.1 --- .github/workflows/django.yml | 80 ++++++++++-------------------------- 1 file changed, 22 insertions(+), 58 deletions(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 74015208..8cb4ef87 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -2,76 +2,40 @@ name: Django CI on: push: - branches: [ "main" ] + branches: [ main ] pull_request: - branches: [ "main" ] + branches: [ main ] jobs: - build: - - runs-on: ubuntu-latest + test: + runs-on: ${{ matrix.os }} strategy: - max-parallel: 4 matrix: - python-version: [3.12] + os: [ubuntu-latest, macos-latest] + python-version: [3.13.1] steps: - 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 }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 with: 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 - env: - GDAL_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu/libgdal.so run: | - python -m pip install --upgrade pip setuptools wheel - GDAL_VERSION=$(gdal-config --version) - 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)" + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run Tests - env: - GDAL_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu/libgdal.so - DJANGO_SETTINGS_MODULE: ci_settings run: | - PYTHONPATH=$PYTHONPATH:. python manage.py test + python manage.py test