v.to.rast: Add points without segfault with densification flag (-d) #3905
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Documentation | |
# Builds Markdown documentation for core and addons. | |
on: | |
push: | |
branches: | |
- main | |
- releasebranch_* | |
pull_request: | |
workflow_dispatch: | |
permissions: {} | |
jobs: | |
ubuntu: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} | |
cancel-in-progress: true | |
runs-on: ubuntu-24.04 | |
env: | |
PYTHONWARNINGS: always | |
# renovate: datasource=python-version depName=python | |
PYTHON_VERSION: "3.14" | |
steps: | |
- name: Checkout core | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
path: grass | |
fetch-depth: 0 | |
persist-credentials: false | |
- name: Get dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y wget git gawk findutils \ | |
doxygen \ | |
gettext \ | |
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 | |
- name: Set up Python (with cache) | |
if: ${{ contains(fromJSON('["push", "pull_request"]'), github.event_name) }} | |
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: pip # zizmor: ignore[cache-poisoning] Assuming push event is not used for tags | |
- name: Set up Python (no cache, use for release artifacts) | |
if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }} | |
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Set version variables | |
run: | | |
cd grass || exit | |
eval "$(./utils/update_version.py status --bash)" | |
{ | |
echo "MAJOR=${MAJOR}" | |
echo "MINOR=${MINOR}" | |
echo "VERSION=${VERSION}" | |
echo "YEAR=${YEAR}" | |
} >> "${GITHUB_ENV}" | |
- name: Checkout addons | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
repository: OSGeo/grass-addons | |
ref: grass${{ env.MAJOR }} | |
path: grass-addons | |
fetch-depth: 0 | |
persist-credentials: false | |
- name: ccache (do not use for release artifacts) | |
uses: hendrikmuhs/ccache-action@bfa03e1de4d7f7c3e80ad9109feedd05c4f5a716 # v1.2.19 | |
if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }} | |
with: | |
create-symlink: true | |
verbose: 2 | |
evict-old-files: 7d | |
key: ${{ github.workflow }}-${{ github.job }}-grass${{ env.MAJOR }}-${{ env.PYTHON_VERSION }} | |
- name: Install Python dependencies | |
# We install both core and addon dependencies, but we don't install any | |
# dependencies from the extra list in addons because we don't actually | |
# run them (and they should be lazy-imported). | |
run: | | |
pip install -r grass/.github/workflows/python_requirements.txt | |
pip install -r grass-addons/.github/workflows/requirements.txt | |
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1 | |
if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }} | |
- name: Create installation directory | |
run: | | |
mkdir "$HOME/install" | |
- name: Set number of cores for compilation | |
run: | | |
echo "MAKEFLAGS=-j$(nproc)" >> "$GITHUB_ENV" | |
- name: Set LD_LIBRARY_PATH for compilation | |
run: | | |
echo "LD_LIBRARY_PATH=$HOME/install/lib" >> "$GITHUB_ENV" | |
- name: Build core | |
run: | | |
cd grass | |
export INSTALL_PREFIX="$HOME/install" | |
./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-nls \ | |
--with-odbc \ | |
--with-openmp \ | |
--with-pdal \ | |
--with-postgres --with-postgres-includes=/usr/include/postgresql \ | |
--with-proj-share=/usr/share/proj \ | |
--with-pthread \ | |
--with-readline \ | |
--with-sqlite \ | |
--with-tiff \ | |
--with-zstd | |
make | |
make install | |
- name: Add the bin directory to PATH | |
run: | | |
echo "$HOME/install/bin" >> "$GITHUB_PATH" | |
- name: Print installed versions | |
if: always() | |
run: ./grass/.github/workflows/print_versions.sh | |
- name: Test executing of the grass command | |
run: ./grass/.github/workflows/test_simple.sh | |
- name: Build Programmer's Manual with doxygen | |
run: | | |
cd grass | |
make htmldocs | |
- name: Make the doxygen results available (html) | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: doxygen-site | |
if-no-files-found: error | |
path: | | |
grass/html | |
!grass/html/**.map | |
!grass/html/**.md5 | |
retention-days: 3 | |
- name: Make the doxygen results available (latex) | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: doxygen-site-latex | |
if-no-files-found: error | |
path: | | |
grass/latex | |
!grass/latex/**.map | |
!grass/latex/**.md5 | |
retention-days: 3 | |
- name: Compile addons | |
run: | | |
./grass-addons/utils/cronjobs_osgeo_lxd/compile_addons_git.sh \ | |
"${MAJOR}" \ | |
"${MINOR}" \ | |
"$(pwd)/grass-addons/src" \ | |
"$(grass --config path)" \ | |
"$(pwd)/addons-build-dir" \ | |
grass | |
- name: Get target path for Markdown files | |
run: | | |
echo MKDOCS_DIR="$(grass --config path)/docs/mkdocs" >> "$GITHUB_ENV" | |
- name: Move from build to target directory | |
run: | | |
mkdir "${MKDOCS_DIR}/source/addons" | |
mv -v addons-build-dir/docs/md/source/* "${MKDOCS_DIR}/source/addons" | |
- name: Build index | |
run: | | |
ARCH="$(grass --config arch)" | |
ARCH_DISTDIR="$(grass --config path)" | |
export ARCH | |
export ARCH_DISTDIR | |
export VERSION_NUMBER="${VERSION}" | |
grass --tmp-project XY --exec \ | |
python grass/man/build_full_index.py md index "${MKDOCS_DIR}/source/addons" addons | |
- name: Copy shared files to addons | |
run: | | |
cd "${MKDOCS_DIR}/source" || exit | |
# This should match directories with color tables and other files | |
# linked from the pages. | |
# shellcheck disable=SC2010,SC2035 # TODO: Address these two issues | |
for name in $(ls -1d */ | grep -vE "^(addons|libpython)/$"); do | |
cp -rv "${name}" addons | |
done | |
- name: Get mkdocs | |
run: | | |
pip install -r "grass/man/mkdocs/requirements.txt" | |
- name: Run mkdocs | |
run: | | |
cd grass || exit | |
eval "$(./utils/update_version.py status --bash)" | |
cd .. | |
export SITE_NAME="GRASS $VERSION Documentation" | |
export COPYRIGHT="© 2003-$YEAR GRASS Development Team, GRASS $VERSION Documentation" | |
cd "${MKDOCS_DIR}" || exit | |
mkdocs build | |
- name: Build Sphinx documentation | |
run: | | |
pip install -r "grass/python/grass/docs/requirements.txt" | |
cd grass || exit | |
make sphinxdoclib | |
ARCH="$(grass --config arch)" | |
mv -v dist."${ARCH}/docs/html/libpython" "${MKDOCS_DIR}/site" | |
- name: Merge Sphinx and MkDocs Sitemaps | |
run: | | |
cd grass || exit | |
python utils/merge_sitemaps.py \ | |
--mkdocs-sitemap "${MKDOCS_DIR}/site/sitemap.xml" \ | |
--sphinx-sitemap "${MKDOCS_DIR}/site/libpython/sitemap.xml" \ | |
--output "${MKDOCS_DIR}/site/sitemap.xml" \ | |
--version "${VERSION}" -o | |
- name: Make logs available | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: grass-addon-build-logs | |
if-no-files-found: error | |
path: addons-build-dir/logs | |
retention-days: 3 | |
- name: Make the result available | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: mkdocs-site | |
if-no-files-found: error | |
path: ${{ env.MKDOCS_DIR }}/site | |
retention-days: 3 |