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
15 changes: 13 additions & 2 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,19 @@ config-variables: null
# "ignore" is an array of regular expression patterns. Matched error messages
# are ignored. This is similar to the "-ignore" command line option.
paths:
# .github/workflows/**/*.yml:
# ignore: []
.github/workflows/**/*.yml:
ignore:
# Remove these ignored errors when actionlint supports `parallel:`, `background:`, `wait:` and `wait-all:`
- 'unexpected key "background" for step to execute action. expected one of' # [syntax-check]
- 'unexpected key "background" for step to run shell command. expected one of' # [syntax-check]
- 'step must run script with "run" section or run action with "uses" section' # [syntax-check]

.github/workflows/python-code-quality.yml:
ignore:
- 'condition "false" is always evaluated to false. remove the if: section' # [if-cond]

.github/workflows/osgeo4w.yml:
ignore:
# Remove these ignored errors when actionlint supports `parallel:`, `background:`, `wait:` and `wait-all:`
- 'property "msys2" is not defined in object type {}' # [expression]
- 'property "osgeo4w" is not defined in object type {}' # [expression]
35 changes: 18 additions & 17 deletions .github/workflows/create_release_draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,23 +42,24 @@ jobs:
- name: Create output directory
run: |
mkdir "${OUT_DIR}"
- name: Generate ChangeLog file
run: |
python utils/gitlog2changelog.py
mv ChangeLog "${OUT_DIR}/ChangeLog"
gzip "${OUT_DIR}/ChangeLog"
- name: Generate Git derived data files
run: |
echo "Generate VERSION_GIT file:"
./utils/generate_version_git_file.sh
cat include/VERSION_GIT
echo "Generate GENERATE_LAST_COMMIT_FILE:"
python utils/generate_last_commit_file.py .
cat core_modules_with_last_commit.json
echo "Create core modules patch file:"
git add core_modules_with_last_commit.json
git diff --cached > \
"${OUT_DIR}/core_modules_with_last_commit.patch"
- parallel:
- name: Generate ChangeLog file
run: |
python utils/gitlog2changelog.py
mv ChangeLog "${OUT_DIR}/ChangeLog"
gzip "${OUT_DIR}/ChangeLog"
- name: Generate Git derived data files
run: |
echo "Generate VERSION_GIT file:"
./utils/generate_version_git_file.sh
cat include/VERSION_GIT
echo "Generate GENERATE_LAST_COMMIT_FILE:"
python utils/generate_last_commit_file.py .
cat core_modules_with_last_commit.json
echo "Create core modules patch file:"
git add core_modules_with_last_commit.json
git diff --cached > \
"${OUT_DIR}/core_modules_with_last_commit.patch"
- name: Create tarballs (for tags only)
if: startsWith(github.ref, 'refs/tags/')
run: |
Expand Down
83 changes: 57 additions & 26 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,16 @@ jobs:

steps:
- name: Checkout core
id: checkout_core
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
background: true
with:
path: grass
fetch-depth: 0
persist-credentials: false

- name: Get dependencies
background: true
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils \
Expand All @@ -52,19 +55,49 @@ jobs:
xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \
sudo apt-get install -y --no-install-recommends --no-install-suggests

- wait: [checkout_core]

- name: Checkout addons
id: checkout_addons
background: true
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: OSGeo/grass-addons
ref: grass${{ env.MAJOR }}
path: grass-addons
fetch-depth: 0
persist-credentials: false

- name: Set up Python (with cache)
id: setup_python_cache
background: true
if: ${{ contains(fromJSON('["push", "pull_request"]'), github.event_name) }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.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)
id: setup_python_nocache
background: true
if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ env.PYTHON_VERSION }}

- wait: [setup_python_cache, setup_python_nocache, checkout_addons]

- name: Install Python dependencies
background: true
# 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

- wait-all:

- name: Set version variables
run: |
cd grass || exit
Expand All @@ -76,15 +109,6 @@ jobs:
echo "YEAR=${YEAR}"
} >> "${GITHUB_ENV}"

- name: Checkout addons
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
if: ${{ contains(fromJSON('["push", "pull_request"]'), github.event_name) }}
Expand All @@ -94,14 +118,6 @@ jobs:
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@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1
if: ${{ contains(fromJSON('["push", "pull_request"]'), github.event_name) }}

Expand Down Expand Up @@ -160,11 +176,28 @@ jobs:
run: ./grass/.github/workflows/test_simple.sh

- name: Build Programmer's Manual with doxygen
id: build_doxygen
background: true
run: |
cd grass
make htmldocs

- name: Compile addons
id: build_addons
background: true
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

- wait: [build_doxygen]

- name: Make the doxygen results available (html)
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: doxygen-site
Expand All @@ -176,6 +209,7 @@ jobs:
retention-days: 15

- name: Make the doxygen results available (latex)
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: doxygen-site-latex
Expand All @@ -185,20 +219,13 @@ jobs:
!grass/latex/**.map
!grass/latex/**.md5
retention-days: 15
- 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"

- wait: [build_addons]

- name: Move from build to target directory
run: |
mkdir "${MKDOCS_DIR}/source/addons"
Expand Down Expand Up @@ -229,6 +256,7 @@ jobs:
pip install -r "grass/man/mkdocs/requirements.txt"

- name: Run mkdocs
background: true
run: |
cd grass || exit
eval "$(./utils/update_version.py status --bash)"
Expand All @@ -239,13 +267,16 @@ jobs:
mkdocs build

- name: Build Sphinx documentation
background: true
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"

- wait-all:

- name: Merge Sphinx and MkDocs Sitemaps
run: |
cd grass || exit
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ jobs:

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
background: true
with:
persist-credentials: false
- name: Get dependencies
background: true
run: |
sudo apt-get update -y
sudo apt-get install -y wget git gawk findutils
Expand All @@ -49,6 +51,7 @@ jobs:
- name: Set LD_LIBRARY_PATH for compilation
run: |
echo "LD_LIBRARY_PATH=${HOME}/install/lib" >> "${GITHUB_ENV}"
- wait-all:
- name: Print build environment variables
shell: bash -el {0}
run: |
Expand Down
Loading
Loading