From 2f0ff302139a0b93073c6d2616f92bb0ab235749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Thu, 16 Jul 2026 12:36:40 +0000 Subject: [PATCH 01/10] CI(OSGeo4w): Install dependencies in parallel using new available worflow syntax `- parallel:` --- .github/workflows/osgeo4w.yml | 133 +++++++++++++++++----------------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/.github/workflows/osgeo4w.yml b/.github/workflows/osgeo4w.yml index eaae6a9a727..ff38dc4d1de 100644 --- a/.github/workflows/osgeo4w.yml +++ b/.github/workflows/osgeo4w.yml @@ -30,72 +30,73 @@ jobs: fail-fast: false steps: - - name: Set git to use LF - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 - id: msys2 - with: - path-type: inherit - location: D:\ - update: true - msystem: MINGW64 - install: >- - bison - diffutils - dos2unix - flex - git - libintl - make - tar - zip - pacboy: >- - bzip2 - ccache - fftw - gcc - gettext - libiconv - libsystre - libtre - libwinpthread-git - openblas - pcre - pkgconf - toolchain - zlib - - - name: Setup OSGeo4W environment - uses: echoix/setup-OSGeo4W@1e711832882e03603e9013181a87885b10af8a98 # v0.3.0 - id: osgeo4w - with: - package-dir: "D:/OSGeo4W_pkg" - packages: | - cairo-devel - freetype-devel - gdal-devel - geos-devel - libjpeg-turbo-devel - liblas-devel - libpng-devel - libpq-devel - libtiff-devel - netcdf-devel - proj-devel - python3-core - python3-jupyter - python3-matplotlib - python3-numpy - python3-pip - python3-pywin32 - python3-wxpython - sqlite3-devel - zstd-devel + - parallel: + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + - uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 + id: msys2 + with: + path-type: inherit + location: D:\ + update: true + msystem: MINGW64 + install: >- + bison + diffutils + dos2unix + flex + git + libintl + make + tar + zip + pacboy: >- + bzip2 + ccache + fftw + gcc + gettext + libiconv + libsystre + libtre + libwinpthread-git + openblas + pcre + pkgconf + toolchain + zlib + + - name: Setup OSGeo4W environment + uses: echoix/setup-OSGeo4W@1e711832882e03603e9013181a87885b10af8a98 # v0.3.0 + id: osgeo4w + with: + package-dir: "D:/OSGeo4W_pkg" + packages: | + cairo-devel + freetype-devel + gdal-devel + geos-devel + libjpeg-turbo-devel + liblas-devel + libpng-devel + libpq-devel + libtiff-devel + netcdf-devel + proj-devel + python3-core + python3-jupyter + python3-matplotlib + python3-numpy + python3-pip + python3-pywin32 + python3-wxpython + sqlite3-devel + zstd-devel - name: Set number of cores for compilation run: | From e653fa0f8a5fc1243b5f96a888f09e5b3587a70a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:29:57 +0000 Subject: [PATCH 02/10] CI: Run some steps of create_release_draft in parallel --- .github/workflows/create_release_draft.yml | 35 +++++++++++----------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/create_release_draft.yml b/.github/workflows/create_release_draft.yml index 3800bdda520..531d87f16a9 100644 --- a/.github/workflows/create_release_draft.yml +++ b/.github/workflows/create_release_draft.yml @@ -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: | From e5ca4332f3220578d66c7feeac6e40393d5dea98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:33:30 +0000 Subject: [PATCH 03/10] CI: Run some steps asynchronously for the documentation workflow Building addons and building doxygen docs are independent, and building mkdocs and sphinx docs are also independent --- .github/workflows/documentation.yml | 63 +++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 87853192df2..be3fa016a4c 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -27,13 +27,16 @@ jobs: steps: - name: Checkout core + id: checkout_core uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + 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 \ @@ -47,7 +50,11 @@ 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: Set up Python (with cache) + id: setup_python_cache + background: true if: ${{ contains(fromJSON('["push", "pull_request"]'), github.event_name) }} uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: @@ -55,11 +62,26 @@ jobs: 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@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ env.PYTHON_VERSION }} + - wait: [setup_python_cache, setup_python_nocache] + + - 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 @@ -89,14 +111,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@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }} @@ -155,11 +169,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 @@ -171,6 +202,7 @@ jobs: retention-days: 3 - name: Make the doxygen results available (latex) + if: ${{ !cancelled() }} uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: doxygen-site-latex @@ -180,20 +212,13 @@ jobs: !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" + - wait: [build_addons] + - name: Move from build to target directory run: | mkdir "${MKDOCS_DIR}/source/addons" @@ -224,6 +249,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)" @@ -234,6 +260,7 @@ jobs: mkdocs build - name: Build Sphinx documentation + background: true run: | pip install -r "grass/python/grass/docs/requirements.txt" cd grass || exit @@ -241,6 +268,8 @@ jobs: 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 From c1ac0447a4a3361988086cb01e0f80147b2e44cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:50:00 +0000 Subject: [PATCH 04/10] CI: Run some steps asynchronously for the gcc standards check workflow --- .github/workflows/gcc.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index 923a7791a52..1215dd99e1c 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -30,9 +30,11 @@ jobs: steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + 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 @@ -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: | From 59c11fc59e517e38d746018014451c62ac0a7771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:50:17 +0000 Subject: [PATCH 05/10] CI: Run some setup steps asynchronously for the pytest workflow --- .github/workflows/pytest.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 0fe3ff95485..3ae8c3ce7c5 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -37,8 +37,9 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - name: Set up Python + id: setup_python + background: true uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ matrix.python-version }} @@ -46,6 +47,7 @@ jobs: allow-prereleases: true - name: Install non-Python dependencies + background: true run: | sudo apt-get update -y sudo apt-get install -y wget git gawk findutils @@ -55,6 +57,9 @@ jobs: sudo apt-get install -y --no-install-recommends --no-install-suggests - uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 + background: true + + - wait: [setup_python] - name: Install Python dependencies run: | From fb34200bdd5bac0902874c69dd83024e2810953c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 21:47:52 +0000 Subject: [PATCH 06/10] checks: Ignore actionlint syntax errors because the tool doesn't recognize parallel keywords yet --- .github/actionlint.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 1b7a4665d2f..78a34eff7db 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -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] From 9a893709c42039f76309f4514a19e5d8b886124f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 21:48:49 +0000 Subject: [PATCH 07/10] style: Format changed workflow files --- .github/workflows/create_release_draft.yml | 34 +++--- .github/workflows/osgeo4w.yml | 132 ++++++++++----------- 2 files changed, 83 insertions(+), 83 deletions(-) diff --git a/.github/workflows/create_release_draft.yml b/.github/workflows/create_release_draft.yml index a122391a682..cc44df1839a 100644 --- a/.github/workflows/create_release_draft.yml +++ b/.github/workflows/create_release_draft.yml @@ -43,23 +43,23 @@ jobs: run: | mkdir "${OUT_DIR}" - 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: 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: | diff --git a/.github/workflows/osgeo4w.yml b/.github/workflows/osgeo4w.yml index 86ec1ae1671..2cb91210fe3 100644 --- a/.github/workflows/osgeo4w.yml +++ b/.github/workflows/osgeo4w.yml @@ -31,72 +31,72 @@ jobs: steps: - parallel: - - name: Set git to use LF - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 - id: msys2 - with: - path-type: inherit - location: D:\ - update: true - msystem: MINGW64 - install: >- - bison - diffutils - dos2unix - flex - git - libintl - make - tar - zip - pacboy: >- - bzip2 - ccache - fftw - gcc - gettext - libiconv - libsystre - libtre - libwinpthread-git - openblas - pcre - pkgconf - toolchain - zlib - - - name: Setup OSGeo4W environment - uses: echoix/setup-OSGeo4W@1e711832882e03603e9013181a87885b10af8a98 # v0.3.0 - id: osgeo4w - with: - package-dir: "D:/OSGeo4W_pkg" - packages: | - cairo-devel - freetype-devel - gdal-devel - geos-devel - libjpeg-turbo-devel - liblas-devel - libpng-devel - libpq-devel - libtiff-devel - netcdf-devel - proj-devel - python3-core - python3-jupyter - python3-matplotlib - python3-numpy - python3-pip - python3-pywin32 - python3-wxpython - sqlite3-devel - zstd-devel + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + - uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 + id: msys2 + with: + path-type: inherit + location: D:\ + update: true + msystem: MINGW64 + install: >- + bison + diffutils + dos2unix + flex + git + libintl + make + tar + zip + pacboy: >- + bzip2 + ccache + fftw + gcc + gettext + libiconv + libsystre + libtre + libwinpthread-git + openblas + pcre + pkgconf + toolchain + zlib + + - name: Setup OSGeo4W environment + uses: echoix/setup-OSGeo4W@1e711832882e03603e9013181a87885b10af8a98 # v0.3.0 + id: osgeo4w + with: + package-dir: "D:/OSGeo4W_pkg" + packages: | + cairo-devel + freetype-devel + gdal-devel + geos-devel + libjpeg-turbo-devel + liblas-devel + libpng-devel + libpq-devel + libtiff-devel + netcdf-devel + proj-devel + python3-core + python3-jupyter + python3-matplotlib + python3-numpy + python3-pip + python3-pywin32 + python3-wxpython + sqlite3-devel + zstd-devel - name: Set number of cores for compilation run: | From e88d682221ccc1a3e33950d75a5fde6a949824fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 22:01:44 +0000 Subject: [PATCH 08/10] CI: Run some setup steps asynchronously for the pytest workflow --- .github/workflows/pytest.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 3ae8c3ce7c5..4d9ed92e10a 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -69,6 +69,8 @@ jobs: pip install --break-system-packages pytest pytest-timeout \ pytest-github-actions-annotate-failures pytest-xdist pytest-cov + - wait-all: + - name: Create installation directory run: | mkdir "${HOME}/install" From c4a451532b5bb52c55cf23822856d139f5e3b392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 22:06:02 +0000 Subject: [PATCH 09/10] CI: Set actionlint config file for super-linter --- .github/workflows/super-linter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/super-linter.yml b/.github/workflows/super-linter.yml index 8fcb1054b3b..92b72e8d746 100644 --- a/.github/workflows/super-linter.yml +++ b/.github/workflows/super-linter.yml @@ -62,5 +62,6 @@ jobs: VALIDATE_POWERSHELL: true # VALIDATE_XML: true VALIDATE_YAML: true + GITHUB_ACTIONS_CONFIG_FILE: .github/actionlint.yaml MARKDOWN_CONFIG_FILE: .markdownlint.yml YAML_CONFIG_FILE: .yamllint From 89cf8f3ae81c14973bb956f6214d3a3d19d398f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Fri, 17 Jul 2026 22:15:08 +0000 Subject: [PATCH 10/10] CI: Move addons checkout earlier when running in parallel --- .github/workflows/documentation.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index be3fa016a4c..e3a9ca5244f 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -52,6 +52,17 @@ jobs: - wait: [checkout_core] + - name: Checkout addons + id: checkout_addons + background: true + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + 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 @@ -69,7 +80,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - - wait: [setup_python_cache, setup_python_nocache] + - wait: [setup_python_cache, setup_python_nocache, checkout_addons] - name: Install Python dependencies background: true @@ -93,15 +104,6 @@ jobs: echo "YEAR=${YEAR}" } >> "${GITHUB_ENV}" - - name: Checkout addons - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.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@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23 if: ${{ !contains(fromJSON('["push", "pull_request"]'), github.event_name) }}