Skip to content

Fix Filmic RGB on Intel Arc #385

Fix Filmic RGB on Intel Arc

Fix Filmic RGB on Intel Arc #385

Workflow file for this run

name: CI
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# Keep in sync with manualrun.yml!
on:
push:
branches:
- master
- dev
- candidate
paths-ignore:
- "po/**"
- "packaging/**"
- "data/latex/**"
- "data/lua/**"
- "data/pixmaps/**"
- "data/pswp/**"
- "data/style/**"
- "data/themes/**"
- "data/watermarks/**"
- "**.md"
- "**.yml"
pull_request:
branches:
- master
paths-ignore:
- "po/**"
- "packaging/**"
- "data/latex/**"
- "data/lua/**"
- "data/pixmaps/**"
- "data/pswp/**"
- "data/style/**"
- "data/themes/**"
- "data/watermarks/**"
- "**.md"
workflow_dispatch:
permissions:
contents: read
jobs:
Linux-minimal:
name: Linux-minimal.${{ matrix.os.code }}.${{ matrix.compiler.compiler }}.${{ matrix.target }}.${{ matrix.btype }}.${{ matrix.generator }}
runs-on: ${{ matrix.os.label }}
strategy:
fail-fast: true
matrix:
include:
# Ubuntu 22.04 GCC 12
- os: { label: ubuntu-22.04, code: jammy }
btype: Debug
compiler: { compiler: GNU12, CC: gcc-12, CXX: g++-12, packages: gcc-12 g++-12 }
target: nofeatures
generator: Ninja
# Ubuntu 22.04 Clang 14
- os: { label: ubuntu-22.04, code: jammy }
btype: Debug
compiler: { compiler: LLVM14, CC: clang-14, CXX: clang++-14, packages: clang-14 libomp-14-dev libclang-common-14-dev llvm-14-dev clang++-14 libc++-14-dev libc++1-14 libc++abi1-14 lld-14}
target: nofeatures
generator: Ninja
# Ubuntu 20.04 GCC 9
- os: { label: ubuntu-20.04, code: focal }
btype: Debug
compiler: { compiler: GNU9, CC: gcc-9, CXX: g++-9, packages: gcc-9 g++-9 }
target: nofeatures
generator: Ninja
# Ubuntu 20.04 Clang 10
- os: { label: ubuntu-20.04, code: focal }
btype: Debug
compiler: { compiler: LLVM10, CC: clang-10, CXX: clang++-10, packages: clang-10 libomp-10-dev libclang-common-10-dev llvm-10-dev clang++-10 libc++-10-dev lld-10}
target: nofeatures_nosse
generator: Ninja
env:
CC: ${{ matrix.compiler.CC }}
CXX: ${{ matrix.compiler.CXX }}
SRC_DIR: ${{ github.workspace }}/src
BUILD_DIR: ${{ github.workspace }}/build
INSTALL_PREFIX: ${{ github.workspace }}/install
CMAKE_BUILD_TYPE: ${{ matrix.btype }}
GENERATOR: ${{ matrix.generator }}
TARGET: ${{ matrix.target }}
DARKTABLE_CLI: ${{ github.workspace }}/install/bin/ansel-cli
steps:
- name: Install compiler ${{ matrix.compiler.compiler }}
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo add-apt-repository -y universe
sudo add-apt-repository -y multiverse
sudo apt-get update
sudo apt-get -y install \
${{ matrix.compiler.packages }}
- name: Install Base Dependencies
run: |
sudo apt-get -y install \
build-essential \
appstream-util \
desktop-file-utils \
gettext \
git \
gdb \
intltool \
libatk1.0-dev \
libcairo2-dev \
libcolord-dev \
libcolord-gtk-dev \
libcmocka-dev \
libcups2-dev \
libcurl4-gnutls-dev \
libexiv2-dev \
libgdk-pixbuf2.0-dev \
libglib2.0-dev \
libgraphicsmagick1-dev \
libgtk-3-dev \
libheif-dev \
libjpeg-dev \
libjson-glib-dev \
liblcms2-dev \
liblensfun-dev \
liblua5.3-dev \
libopenexr-dev \
libopenjp2-7-dev \
libosmgpsmap-1.0-dev \
libpango1.0-dev \
libpng-dev \
libpugixml-dev \
librsvg2-dev \
libsaxon-java \
libsecret-1-dev \
libsoup2.4-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@v3
with:
submodules: true
fetch-depth: 1
path: src
- 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
if: ${{ matrix.target != 'usermanual' }}
run: |
${INSTALL_PREFIX}/bin/ansel --version || true
${INSTALL_PREFIX}/bin/ansel-cli \
--width 2048 --height 2048 \
--hq true --apply-custom-presets false \
"${SRC_DIR}/src/tests/integration/images/mire1.cr2" \
"${SRC_DIR}/src/tests/integration/0000-nop/nop.xmp" \
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
Linux:
name: Linux.${{ matrix.os.code }}.${{ matrix.compiler.compiler }}.${{ matrix.target }}.${{ matrix.btype }}.${{ matrix.generator }}
needs: Linux-minimal
runs-on: ${{ matrix.os.label }}
strategy:
fail-fast: true
matrix:
os:
- { label: ubuntu-22.04, code: jammy }
compiler:
- { compiler: GNU10, CC: gcc-10, CXX: g++-10, packages: gcc-10 g++-10 }
- { compiler: GNU11, CC: gcc-11, CXX: g++-11, packages: gcc-11 g++-11 }
- { compiler: GNU12, CC: gcc-12, CXX: g++-12, packages: gcc-12 g++-12 }
- { compiler: LLVM12, CC: clang-12, CXX: clang++-12, packages: clang-12 libomp-12-dev libclang-common-12-dev llvm-12-dev clang++-12 libc++-12-dev libc++1-12 libc++abi1-12 lld-12}
- { compiler: LLVM13, CC: clang-13, CXX: clang++-13, packages: clang-13 libomp-13-dev libclang-common-13-dev llvm-13-dev clang++-13 libc++-13-dev libc++1-13 libc++abi1-13 lld-13}
- { compiler: LLVM14, CC: clang-14, CXX: clang++-14, packages: clang-14 libomp-14-dev libclang-common-14-dev llvm-14-dev clang++-14 libc++-14-dev libc++1-14 libc++abi1-14 lld-14}
btype:
- RelWithDebInfo
- Release
target:
- skiptest
- nofeatures
generator:
#- Unix Makefiles
- Ninja
env:
CC: ${{ matrix.compiler.CC }}
CXX: ${{ matrix.compiler.CXX }}
SRC_DIR: ${{ github.workspace }}/src
BUILD_DIR: ${{ github.workspace }}/build
INSTALL_PREFIX: ${{ github.workspace }}/install
CMAKE_BUILD_TYPE: ${{ matrix.btype }}
GENERATOR: ${{ matrix.generator }}
TARGET: ${{ matrix.target }}
DARKTABLE_CLI: ${{ github.workspace }}/install/bin/ansel-cli
steps:
- name: Install compiler ${{ matrix.compiler.compiler }}
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository -y universe
sudo add-apt-repository -y multiverse
sudo apt-get update
sudo apt-get -y install \
${{ matrix.compiler.packages }}
- name: Install Base Dependencies
run: |
sudo apt-get -y install \
build-essential \
appstream-util \
desktop-file-utils \
gettext \
git \
gdb \
intltool \
libatk1.0-dev \
libcairo2-dev \
libcolord-dev \
libcolord-gtk-dev \
libcmocka-dev \
libcups2-dev \
libcurl4-gnutls-dev \
libexiv2-dev \
libgdk-pixbuf2.0-dev \
libglib2.0-dev \
libgraphicsmagick1-dev \
libgtk-3-dev \
libheif-dev \
libjpeg-dev \
libjson-glib-dev \
liblcms2-dev \
liblensfun-dev \
liblua5.3-dev \
libopenexr-dev \
libopenjp2-7-dev \
libosmgpsmap-1.0-dev \
libpango1.0-dev \
libpng-dev \
libportmidi-dev \
libpugixml-dev \
librsvg2-dev \
libsaxon-java \
libsecret-1-dev \
libsoup2.4-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@v3
with:
submodules: true
path: src
- 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/ansel --version || true
${INSTALL_PREFIX}/bin/ansel-cli \
--width 2048 --height 2048 \
--hq true --apply-custom-presets false \
"${SRC_DIR}/src/tests/integration/images/mire1.cr2" \
"${SRC_DIR}/src/tests/integration/0000-nop/nop.xmp" \
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
- name: Run Integration test suite
#integration test can get "stuck" plus there are couple of errors here, so it needs to be addressed first
if: ${{ false }}
run: |
cd "${SRC_DIR}/src/tests/integration/"
./run.sh --no-opencl --no-deltae --fast-fail
Win64:
name: Win64.${{ matrix.compiler.compiler }}.${{ matrix.target }}.${{ matrix.btype }}.${{ matrix.generator }}
needs: Linux-minimal
runs-on: windows-latest
strategy:
fail-fast: true
matrix:
btype:
- RelWithDebInfo
- Release
compiler:
- { compiler: GNU, CC: gcc, CXX: g++ }
target:
- skiptest
- nofeatures
generator:
#- MSYS Makefiles
- Ninja
include:
- btype: Release
compiler: { compiler: GNU, CC: gcc, CXX: g++ }
eco: -DBINARY_PACKAGE_BUILD=ON
target: skiptest
generator: Ninja
- btype: Debug
compiler: { compiler: GNU, CC: gcc, CXX: g++ }
target: skiptest
generator: Ninja
defaults:
run:
shell: msys2 {0}
env:
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 }}
TARGET: ${{ matrix.target }}
GENERATOR: ${{ matrix.generator }}
# todo: use linker which supports --wrap, ld.bfd and ld.gold support it
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ucrt64
install: >-
base-devel
git
intltool
pacboy: >-
toolchain:p
cmake:p
cmocka:p
ninja:p
nsis:p
dbus-glib:p
drmingw:p
exiv2:p
gettext:p
gmic:p
graphicsmagick:p
gtk3:p
iso-codes:p
lcms2:p
lensfun:p
libavif:p
libexif:p
libheif:p
libjpeg-turbo:p
libsecret:p
libsoup:p
libwebp:p
libxml2:p
libxslt:p
lua:p
openexr:p
openjpeg2:p
osm-gps-map:p
portmidi:p
pugixml:p
python3:p
python3-jsonschema:p
python3-setuptools:p
python3-six:p
sqlite3:p
zlib:p
gmic:p
update: true
- uses: actions/checkout@v3
with:
submodules: true
path: src
- 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
if: ${{success() && matrix.compiler.compiler == 'GNU' }} # LLVM build on windws for some reason breaks in imageio_rawspeed...
run: |
$(cygpath ${INSTALL_PREFIX})/bin/ansel.exe --version || true
$(cygpath ${INSTALL_PREFIX})/bin/ansel-cli.exe --version || true
echo "Testing RUN!"
$(cygpath ${INSTALL_PREFIX})/bin/ansel-cli.exe \
--verbose \
--width 2048 --height 2048 \
--hq true --apply-custom-presets false \
$(cygpath ${SRC_DIR})/src/tests/integration/images/mire1.cr2 \
$(cygpath ${SRC_DIR})/src/tests/integration/0000-nop/nop.xmp \
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: ${{ false }}
name: macOS.${{ matrix.compiler.compiler }}.${{ matrix.build.xcode }}.${{ matrix.target }}.${{ matrix.generator }}
needs: Linux-minimal
runs-on: ${{ matrix.build.os }}
strategy:
fail-fast: true
matrix:
build:
- { os: macos-11, xcode: 12.5.1, deployment: 11.3 }
- { os: macos-11, xcode: 13.2.1, deployment: 12.1 }
- { os: macos-12, xcode: 13.4, deployment: 12.3 }
compiler:
- { compiler: XCode, CC: cc, CXX: c++ }
btype:
- RelWithDebInfo
- Release
target:
- skiptest
- nofeatures
generator:
- Ninja
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
CMAKE_BUILD_TYPE: ${{ matrix.btype }}
GENERATOR: ${{ matrix.generator }}
TARGET: ${{ matrix.target }}
steps:
- uses: actions/checkout@v3
with:
submodules: true
path: src
- name: Install Base Dependencies
run: |
brew update > /dev/null || true
brew unlink [email protected]
# brew link --overwrite [email protected] # workaround introduced 30.12.2020, replace asap.
# brew link --overwrite [email protected] # workaround introduced 16.12.2022
# brew upgrade --ignore-pinned # workaround introduced 18.07.2021, replace asap
brew tap Homebrew/bundle
cd src/.ci
brew bundle --verbose
brew link --force libomp # fix for keg-only libomp
- name: Build and Install
# todo: use linker which supports --wrap, ld.bfd and ld.gold support it
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/ansel --version || true
${INSTALL_PREFIX}/bin/ansel-cli \
--width 2048 --height 2048 \
--hq true --apply-custom-presets false \
"${SRC_DIR}/src/tests/integration/images/mire1.cr2" \
"${SRC_DIR}/src/tests/integration/0000-nop/nop.xmp" \
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 || true # OpenMP builds crash for most configs