Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/apt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ libgdal-dev
libgl1-mesa-dev
libglu1-mesa-dev
liblapacke-dev
libncurses-dev
libnetcdf-dev
libpdal-dev
libpng-dev
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/build_ubuntu-24.04.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/env bash

# The make step requires something like:
# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PREFIX/lib"
# further steps additionally require:
# export PATH="$PATH:$PREFIX/bin"

# fail on non-zero return code from a subprocess
set -e

# print commands
set -x

if [ -z "$1" ]; then
echo "Usage: $0 PREFIX"
exit 1
fi

# Adding -Werror to make's CFLAGS is a workaround for configuring with
# an old version of configure, which issues compiler warnings and
# errors out. This may be removed with upgraded configure.in file.
makecmd="make"
if [[ "$#" -ge 2 ]]; then
ARGS=("$@")
makecmd="make CFLAGS='$CFLAGS ${ARGS[@]:1}' CXXFLAGS='$CXXFLAGS ${ARGS[@]:1}'"
fi

# non-existent variables as an errors
set -u

export INSTALL_PREFIX=$1

./configure \
--enable-largefile \
--prefix="$INSTALL_PREFIX/" \
--with-blas \
--with-bzlib \
--with-cxx \
--with-fftw \
--with-freetype \
--with-freetype-includes="/usr/include/freetype2/" \
--with-geos \
--with-lapack \
--with-libsvm \
--with-netcdf \
--with-openmp \
--with-pdal \
--with-proj-share=/usr/share/proj \
--with-pthread \
--with-readline \
--with-sqlite \
--with-tiff \
--with-zstd

eval $makecmd
make install
54 changes: 54 additions & 0 deletions .github/workflows/build_ubuntu-24.04_without_x.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/usr/bin/env bash

# The make step requires something like:
# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PREFIX/lib"
# further steps additionally require:
# export PATH="$PATH:$PREFIX/bin"

# fail on non-zero return code from a subprocess
set -e

# print commands
set -x

if [ -z "$1" ]; then
echo "Usage: $0 PREFIX"
exit 1
fi

# Adding -Werror to make's CFLAGS is a workaround for configuring with
# an old version of configure, which issues compiler warnings and
# errors out. This may be removed with upgraded configure.in file.
makecmd="make"
if [[ "$#" -eq 2 ]]; then
makecmd="make CFLAGS='$CFLAGS $2' CXXFLAGS='$CXXFLAGS $2'"
fi

# non-existent variables as an errors
set -u

export INSTALL_PREFIX=$1

./configure \
--enable-largefile \
--prefix="$INSTALL_PREFIX/" \
--without-blas \
--without-lapack \
--with-bzlib \
--with-cxx \
--with-fftw \
--with-freetype \
--with-freetype-includes="/usr/include/freetype2/" \
--with-geos \
--with-netcdf \
--with-pdal \
--with-proj-share=/usr/share/proj \
--with-readline \
--with-sqlite \
--with-tiff \
--with-zstd \
--without-openmp \
--without-pthread

eval $makecmd
make install
4 changes: 3 additions & 1 deletion .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ permissions:

jobs:
build-cmake:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
CMAKE_VERSION: "3.22.0"
steps:
Expand All @@ -48,6 +48,8 @@ jobs:
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils ninja-build libpq-dev \
gettext unixodbc-dev libnetcdf-dev
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests
- name: Print build environment variables
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ permissions: {}
jobs:
analyze:
name: Analyze
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
security-events: write
actions: read
Expand Down Expand Up @@ -53,6 +53,8 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
Expand Down Expand Up @@ -81,7 +83,7 @@ jobs:
env:
CFLAGS: -std=gnu11
CXXFLAGS: -std=c++11
run: .github/workflows/build_ubuntu-22.04.sh "${HOME}/install"
run: .github/workflows/build_ubuntu-24.04.sh "${HOME}/install"

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
# https://github.com/OSGeo/PROJ/blob/905c9a6c2da3dc6b7aa2c89d3ab78d9d1a9cd070/.github/workflows/coverity-scan.yml
jobs:
coverity:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: github.repository == 'OSGeo/grass'
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
Expand All @@ -25,6 +25,8 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true

runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONWARNINGS: always
# renovate: datasource=python-version depName=python
Expand All @@ -42,6 +42,8 @@ jobs:
graphviz \
libpq-dev \
unixodbc-dev
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
matrix.c }}-${{ matrix.cpp }}
cancel-in-progress: true

runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
include:
Expand All @@ -36,6 +36,8 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests
- name: Create installation directory
Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
strategy:
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
python-version:
- "3.9"
- "3.13"
Expand Down Expand Up @@ -49,6 +49,8 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

Expand All @@ -57,9 +59,10 @@ jobs:
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r .github/workflows/python_requirements.txt
pip install -r .github/workflows/optional_requirements.txt
pip install pytest pytest-timeout pytest-github-actions-annotate-failures pytest-xdist pytest-cov
pip install --break-system-packages -r .github/workflows/python_requirements.txt
pip install --break-system-packages -r .github/workflows/optional_requirements.txt
pip install --break-system-packages pytest pytest-timeout \
pytest-github-actions-annotate-failures pytest-xdist pytest-cov

- name: Create installation directory
run: |
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/python-code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
strategy:
matrix:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04

env:
# renovate: datasource=python-version depName=python
Expand Down Expand Up @@ -65,10 +65,10 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
cache: pip # zizmor: ignore[cache-poisoning] Not creating release artifacts, less of a concern here
- name: Upgrade pip
run: python -m pip install --upgrade pip
run: python -m pip install --break-system-packages --upgrade pip

- name: Install Ruff
run: pip install "ruff==${RUFF_VERSION}"
run: pip install --break-system-packages "ruff==${RUFF_VERSION}"
- name: Run Ruff (output annotations on fixable errors)
run: ruff check --output-format=github . --preview --unsafe-fixes
continue-on-error: true
Expand Down Expand Up @@ -97,14 +97,16 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

- name: Install Python dependencies
run: |
pip install -r .github/workflows/python_requirements.txt
pip install -r .github/workflows/optional_requirements.txt
pip install --user pipx
pip install --break-system-packages -r .github/workflows/python_requirements.txt
pip install --break-system-packages -r .github/workflows/optional_requirements.txt
pip install --break-system-packages --user pipx
pipx ensurepath
pipx install "flake8==${FLAKE8_VERSION}"
pipx install "pylint==${PYLINT_VERSION}"
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
strategy:
matrix:
name:
- "22.04"
- "24.04"
- minimum config

# Only run tests for these folders in this matrix job.
Expand All @@ -50,15 +50,15 @@ jobs:
testsuite utils vector visualization

include:
- name: "22.04"
os: ubuntu-22.04
config: ubuntu-22.04
- name: "24.04"
os: ubuntu-24.04
config: ubuntu-24.04
# This is without optional things but it still keeps things useful,
# so, e.g., without OpenMP, but with PDAL. Code or tests should be written
# so that test pass even when these optional things are not present.
- name: minimum config
os: ubuntu-22.04
config: ubuntu-22.04_without_x
os: ubuntu-24.04
config: ubuntu-24.04_without_x
fail-fast: false

steps:
Expand Down Expand Up @@ -108,6 +108,8 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
LC_ALL=C.UTF-8 sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update -y
xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

Expand Down
Loading