fix #22455 raw denoise: X-Trans green sensels in the last column get a red neighbor's value #22305
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: CI | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - darktable-** | |
| paths-ignore: | |
| - "po/**" | |
| - "packaging/**" | |
| - "data/latex/**" | |
| - "data/lua/**" | |
| - "data/pixmaps/**" | |
| - "data/pswp/**" | |
| - "data/style/**" | |
| - "data/themes/**" | |
| - "data/watermarks/**" | |
| - "tools/*" | |
| - "**.md" | |
| - ".github/ISSUE_TEMPLATE/*" | |
| - ".github/workflows/nightly.yml" | |
| pull_request: | |
| branches: | |
| - master | |
| paths-ignore: | |
| - "po/**" | |
| - "packaging/**" | |
| - "data/latex/**" | |
| - "data/lua/**" | |
| - "data/pixmaps/**" | |
| - "data/pswp/**" | |
| - "data/style/**" | |
| - "data/themes/**" | |
| - "data/watermarks/**" | |
| - "tools/*" | |
| - "**.md" | |
| - ".github/ISSUE_TEMPLATE/*" | |
| - ".github/workflows/nightly.yml" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| Linux: | |
| if: github.repository == 'darktable-org/darktable' || github.event_name == 'workflow_dispatch' | |
| name: Linux_${{ matrix.distro }}_${{ matrix.compiler.compiler }}_${{ matrix.btype }}${{ matrix.name_suffix }} | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ${{ matrix.distro }} | |
| options: --tmpfs /tmp:exec --tmpfs /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}:exec | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| distro: | |
| - "ubuntu:26.04" | |
| compiler: | |
| # GCC 16 build is commented out here as we are building the same thing but including unit tests (see the | |
| # "include" section below); building a subset of the code using the same compiler serves no purpose. | |
| # - { compiler: GNU16, CC: gcc-16, CXX: g++-16, packages: gcc-16 g++-16 } | |
| - { compiler: LLVM22, CC: clang-22, CXX: clang++-22, packages: clang-22 libomp-22-dev llvm-22-dev libc++-22-dev libc++abi1 lld-22 clang-tools-22 mlir-22-tools libmlir-22-dev} | |
| btype: | |
| - Release | |
| target: | |
| - skiptest | |
| generator: | |
| - Ninja | |
| eco: [-DDONT_USE_INTERNAL_LIBRAW=ON] | |
| include: | |
| # We want one run in CI to be Debug to make sure the Debug build isn't broken | |
| - distro: "ubuntu:26.04" | |
| btype: Debug | |
| compiler: { compiler: GNU16, CC: gcc-16, CXX: g++-16, packages: gcc-16 g++-16 } | |
| target: skiptest | |
| generator: Ninja | |
| eco: -DDONT_USE_INTERNAL_LIBRAW=OFF | |
| # The other entries use the skiptest target, which never configures | |
| # BUILD_TESTING and so never even compiles the unit tests. This one | |
| # builds them and runs ctest. | |
| - distro: "ubuntu:26.04" | |
| btype: Release | |
| compiler: { compiler: GNU16, CC: gcc-16, CXX: g++-16, packages: gcc-16 g++-16 } | |
| target: build | |
| generator: Ninja | |
| eco: -DDONT_USE_INTERNAL_LIBRAW=ON | |
| name_suffix: _tests | |
| env: | |
| DISTRO: ${{ matrix.distro }} | |
| CC: ${{ matrix.compiler.CC }} | |
| CXX: ${{ matrix.compiler.CXX }} | |
| SRC_DIR: ${{ github.workspace }}/src | |
| BUILD_DIR: ${{ github.workspace }}/build | |
| INSTALL_PREFIX: ${{ github.workspace }}/install | |
| ECO: ${{ matrix.eco }} | |
| CMAKE_BUILD_TYPE: ${{ matrix.btype }} | |
| GENERATOR: ${{ matrix.generator }} | |
| TARGET: ${{ matrix.target }} | |
| DARKTABLE_CLI: ${{ github.workspace }}/install/bin/darktable-cli | |
| DEBIAN_FRONTEND: noninteractive | |
| steps: | |
| - name: Select fallback Ubuntu mirror if requested | |
| if: startsWith(github.ref_name, 'azure-') | |
| # Sometimes the default Ubuntu mirror is unreliable under overload | |
| # and CI fails because of this. We can use a special branch name | |
| # prefix to switch the mirror to the one on Azure. Always using the | |
| # Azure is not a solution as it can also fail from time to time. | |
| run: | | |
| sed -i 's/archive\.ubuntu/azure\.archive\.ubuntu/' /etc/apt/sources.list.d/ubuntu.sources | |
| - name: Update base packages | |
| timeout-minutes: 15 | |
| run: | | |
| set -xe | |
| rm -rf /var/lib/apt/lists/* | |
| apt-get --yes update | |
| apt-get --yes install eatmydata | |
| eatmydata apt-get --yes upgrade | |
| - name: Install compiler ${{ matrix.compiler.compiler }} | |
| run: | | |
| eatmydata apt-get --yes install ${{ matrix.compiler.packages }} | |
| - name: Install Base Dependencies | |
| run: | | |
| eatmydata apt-get --yes install \ | |
| build-essential \ | |
| cmake \ | |
| appstream-util \ | |
| desktop-file-utils \ | |
| gettext \ | |
| git \ | |
| gdb \ | |
| intltool \ | |
| libarchive-dev \ | |
| libatk1.0-dev \ | |
| libavif-dev \ | |
| libcairo2-dev \ | |
| libcmocka-dev \ | |
| libcolord-dev \ | |
| libcolord-gtk-dev \ | |
| libcups2-dev \ | |
| libcurl4-gnutls-dev \ | |
| libexiv2-dev \ | |
| libgdk-pixbuf-2.0-dev \ | |
| libglib2.0-dev \ | |
| libgmic-dev \ | |
| libgphoto2-dev \ | |
| libgraphicsmagick1-dev \ | |
| libgtk-3-dev \ | |
| libheif-dev \ | |
| libjpeg-dev \ | |
| libjson-glib-dev \ | |
| liblcms2-dev \ | |
| liblensfun-dev \ | |
| liblua5.4-dev \ | |
| libonnxruntime-dev \ | |
| libopencv-calib3d-dev \ | |
| libopencv-core-dev \ | |
| libopencv-features2d-dev \ | |
| libopencv-flann-dev \ | |
| libopencv-imgproc-dev \ | |
| libopenexr-dev \ | |
| libopenjp2-7-dev \ | |
| libosmgpsmap-1.0-dev \ | |
| libpango1.0-dev \ | |
| libpng-dev \ | |
| libportmidi-dev \ | |
| libpotrace-dev \ | |
| libpugixml-dev \ | |
| libraw-dev \ | |
| librsvg2-dev \ | |
| libsaxon-java \ | |
| libsdl2-dev \ | |
| libsecret-1-dev \ | |
| libsqlite3-dev \ | |
| libtiff5-dev \ | |
| libwebp-dev \ | |
| libx11-dev \ | |
| libxml2-dev \ | |
| libxml2-utils \ | |
| ninja-build \ | |
| perl \ | |
| po4a \ | |
| python3-jsonschema \ | |
| xsltproc \ | |
| zlib1g-dev; | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: false | |
| path: src | |
| fetch-depth: 1 | |
| - name: Get only those submodules that are needed for build | |
| run: | | |
| cd src | |
| git submodule init | |
| git config submodule.src/tests/integration.update none | |
| git submodule update | |
| cd - | |
| - name: Build and Install | |
| run: | | |
| cmake -E make_directory "${BUILD_DIR}"; | |
| cmake -E make_directory "${INSTALL_PREFIX}"; | |
| ./src/.ci/ci-script.sh; | |
| - name: Check if it runs | |
| run: | | |
| ${INSTALL_PREFIX}/bin/darktable --version || true | |
| ${INSTALL_PREFIX}/bin/darktable-cli \ | |
| --width 1000 --height 1000 \ | |
| --hq true --apply-custom-presets false \ | |
| "${SRC_DIR}/data/pixmaps/256x256/darktable.png" \ | |
| output.png \ | |
| --core --disable-opencl --conf host_memory_limit=8192 \ | |
| --conf worker_threads=4 -t 4 \ | |
| --conf plugins/lighttable/export/force_lcms2=FALSE \ | |
| --conf plugins/lighttable/export/iccintent=0 | |
| Windows: | |
| if: github.repository == 'darktable-org/darktable' || github.event_name == 'workflow_dispatch' | |
| name: Windows_${{ matrix.msystem }}_${{ matrix.btype }} | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| btype: | |
| - Release | |
| msystem: | |
| #- CLANG64 | |
| - UCRT64 | |
| target: | |
| - skiptest | |
| generator: | |
| - Ninja | |
| eco: [-DDONT_USE_INTERNAL_LIBRAW=ON] | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| env: | |
| SRC_DIR: ${{ github.workspace }}/src | |
| BUILD_DIR: ${{ github.workspace }}/build | |
| INSTALL_PREFIX: ${{ github.workspace }}/install | |
| ECO: ${{ matrix.eco }} | |
| CMAKE_BUILD_TYPE: ${{ matrix.btype }} | |
| TARGET: ${{ matrix.target }} | |
| GENERATOR: ${{ matrix.generator }} | |
| steps: | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{ matrix.msystem }} | |
| install: >- | |
| git | |
| intltool | |
| po4a | |
| pacboy: >- | |
| cc:p | |
| cmake:p | |
| libxslt:p | |
| ninja:p | |
| nsis:p | |
| python-jsonschema:p | |
| curl:p | |
| drmingw:p | |
| exiv2:p | |
| gcc-libs:p | |
| gettext:p | |
| gmic:p | |
| graphicsmagick:p | |
| gtk3:p | |
| icu:p | |
| imath:p | |
| iso-codes:p | |
| lcms2:p | |
| lensfun:p | |
| libarchive:p | |
| libavif:p | |
| libgphoto2:p | |
| libheif:p | |
| libjpeg-turbo:p | |
| libjxl:p | |
| libpng:p | |
| libraw:p | |
| librsvg:p | |
| libsecret:p | |
| libtiff:p | |
| libwebp:p | |
| libxml2:p | |
| lua54:p | |
| omp:p | |
| opencv:p | |
| openexr:p | |
| openjpeg2:p | |
| osm-gps-map:p | |
| portmidi:p | |
| potrace:p | |
| pugixml:p | |
| SDL2:p | |
| sqlite3:p | |
| zlib:p | |
| update: true | |
| - run: git config --global core.autocrlf input | |
| shell: bash | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: false | |
| path: src | |
| fetch-depth: 1 | |
| - name: Get only those submodules that are needed for build | |
| run: | | |
| cd src | |
| git submodule init | |
| git config submodule.src/tests/integration.update none | |
| git submodule update | |
| cd - | |
| - name: Build and Install | |
| run: | | |
| cmake -E make_directory "${BUILD_DIR}" | |
| cmake -E make_directory "${INSTALL_PREFIX}" | |
| $(cygpath ${SRC_DIR})/.ci/ci-script.sh | |
| - name: Check if it runs | |
| run: | | |
| $(cygpath ${INSTALL_PREFIX})/bin/darktable.exe --version || true | |
| $(cygpath ${INSTALL_PREFIX})/bin/darktable-cli.exe --version || true | |
| echo "Testing RUN!" | |
| $(cygpath ${INSTALL_PREFIX})/bin/darktable-cli.exe \ | |
| --width 1000 --height 1000 \ | |
| --hq true --apply-custom-presets false \ | |
| $(cygpath ${SRC_DIR})/data/pixmaps/256x256/darktable.png \ | |
| output.png \ | |
| --core --disable-opencl --conf host_memory_limit=8192 \ | |
| --conf worker_threads=4 -t 4 \ | |
| --conf plugins/lighttable/export/force_lcms2=FALSE \ | |
| --conf plugins/lighttable/export/iccintent=0 | |
| macOS: | |
| if: github.repository == 'darktable-org/darktable' || github.event_name == 'workflow_dispatch' | |
| name: macOS_${{ matrix.build.os }}_${{ matrix.compiler.compiler }}_${{ matrix.build.xcode }}_${{ matrix.btype }} | |
| runs-on: ${{ matrix.build.os }} | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| build: | |
| - { os: macos-15, xcode: 26.3, deployment: 15.0 } # AppleClang 17, arm64 | |
| compiler: | |
| - { compiler: XCode, CC: cc, CXX: c++ } | |
| btype: [ Release ] | |
| target: | |
| - skiptest | |
| generator: | |
| - Ninja | |
| eco: [-DDONT_USE_INTERNAL_LIBRAW=ON -DUSE_GRAPHICSMAGICK=OFF -DUSE_IMAGEMAGICK=ON] | |
| env: | |
| DEVELOPER_DIR: /Applications/Xcode_${{ matrix.build.xcode }}.app/Contents/Developer | |
| CC: ${{ matrix.compiler.CC }} | |
| CXX: ${{ matrix.compiler.CXX }} | |
| MACOSX_DEPLOYMENT_TARGET: ${{ matrix.build.deployment }} | |
| SRC_DIR: ${{ github.workspace }}/src | |
| BUILD_DIR: ${{ github.workspace }}/build | |
| INSTALL_PREFIX: ${{ github.workspace }}/install | |
| ECO: ${{ matrix.eco }} | |
| CMAKE_BUILD_TYPE: ${{ matrix.btype }} | |
| GENERATOR: ${{ matrix.generator }} | |
| TARGET: ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: false | |
| path: src | |
| fetch-depth: 1 | |
| - name: Get only those submodules that are needed for build | |
| run: | | |
| cd src | |
| git submodule init | |
| git config submodule.src/tests/integration.update none | |
| git submodule update | |
| cd - | |
| - name: Install Base Dependencies | |
| run: | | |
| # The GitHub runner images ship aws/tap, which Homebrew does not trust and | |
| # thus warns about on every invocation. We don't use it, so drop it. | |
| brew untap --force aws/tap || true | |
| brew update > /dev/null || true | |
| cd src/.ci | |
| export HOMEBREW_NO_INSTALL_UPGRADE=1 | |
| brew bundle --verbose || true | |
| # `brew bundle` above tolerates failures, and a missing OpenCV only | |
| # disables HDR bracket auto-alignment silently at configure time, so | |
| # check the formula really is installed. | |
| brew list --versions opencv | |
| - name: Build and Install | |
| run: | | |
| cmake -E make_directory "${BUILD_DIR}"; | |
| cmake -E make_directory "${INSTALL_PREFIX}"; | |
| ./src/.ci/ci-script.sh; | |
| - name: Check if it runs | |
| run: | | |
| ${INSTALL_PREFIX}/bin/darktable --version || true | |
| ${INSTALL_PREFIX}/bin/darktable-cli \ | |
| --width 1000 --height 1000 \ | |
| --hq true --apply-custom-presets false \ | |
| "${SRC_DIR}/data/pixmaps/256x256/darktable.png" \ | |
| output.png \ | |
| --core --disable-opencl --conf host_memory_limit=8192 \ | |
| --conf worker_threads=4 -t 4 \ | |
| --conf plugins/lighttable/export/force_lcms2=FALSE \ | |
| --conf plugins/lighttable/export/iccintent=0 |