gimp/.gitlab-ci.yml

364 lines
9.4 KiB
YAML

image: debian:testing
stages:
- dependencies
- gimp
- analysis
variables:
GIT_DEPTH: "1"
INSTALL_DIR: "_install"
INSTALL_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
PACMAN_CACHE: "${CI_PROJECT_DIR}/_pacman_cache"
## GNU/Linux 64-bit CIs ##
deps-debian/testing:
stage: dependencies
cache:
paths:
- _pacman_cache
artifacts:
expire_in: 2 hours
when: always
paths:
- "${INSTALL_DIR}"
- _babl/_build
- _gegl/_build
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
build-essential
git
ffmpeg
graphviz-dev
gobject-introspection
libjson-glib-dev
libgexiv2-dev
libgirepository1.0-dev
liblcms2-dev
libopenexr-dev
libraw-dev
librsvg2-dev
libspiro-dev
libsuitesparse-dev
libtiff5-dev
luajit
meson
python3
valac
- apt-get install -y --reinstall ca-certificates
- git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/babl.git _babl
- git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/pkgconfig"
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}"
- export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib/`gcc -print-multiarch`:$LD_LIBRARY_PATH"
- export XDG_DATA_DIRS="${INSTALL_PREFIX}/share:/usr/local/share:/usr/share"
script:
- cd _babl
- meson -Dprefix="${INSTALL_PREFIX}" _build
- ninja -C _build
- ninja -C _build install
- cd ../_gegl
- meson --prefix="${INSTALL_PREFIX}" _build
- ninja -C _build
- ninja -C _build install
.gimp-debian/testing-base:
stage: gimp
dependencies:
- deps-debian/testing
artifacts:
expire_in: 1 days
when: always
name: "app-build-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
paths:
- _build
#- "${INSTALL_DIR}"
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
at-spi2-core
build-essential
desktop-file-utils
ffmpeg
hicolor-icon-theme
ghostscript
git
glib-networking
gobject-introspection
gtk-doc-tools
intltool
iso-codes
libappstream-glib-dev
libbz2-dev
libdbus-glib-1-dev
libexif-dev
libgexiv2-dev
libgirepository1.0-dev
libgtk-3-bin
libgtk-3-dev
libgudev-1.0-dev
libjson-glib-dev
liblcms2-dev
liblzma-dev
libmng-dev
libmypaint-dev
libopenexr-dev
libpoppler-glib-dev
libraw19
librsvg2-dev
libspiro-dev
libtiff-dev
libtool
libumfpack5
libwebp-dev
libwmf-dev
libxmu-dev
libxpm-dev
meson
mypaint-brushes
poppler-data
xauth
xvfb
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/pkgconfig:${INSTALL_PREFIX}/share/pkgconfig"
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/share/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}"
- export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib/`gcc -print-multiarch`:$LD_LIBRARY_PATH"
- export XDG_DATA_DIRS="${INSTALL_PREFIX}/share:/usr/local/share:/usr/share"
- export PATH="${INSTALL_PREFIX}/bin:$PATH"
needs: ["deps-debian/testing"]
gimp-debian/testing-autotools:
extends: .gimp-debian/testing-base
script:
- mkdir _build
- cd _build
- ../autogen.sh
--prefix="${INSTALL_PREFIX}"
--enable-debug
--with-python=force
--with-javascript=force
--with-lua=force
- make -j "$(nproc)"
- make check
gimp-debian/testing-meson:
extends: .gimp-debian/testing-base
script:
- meson _build
--prefix="${INSTALL_PREFIX}"
-Dpython=always
-Djavascript=always
-Dlua=always
- ninja -C _build
- ninja -C _build test
gimp-debian/testing-clang:
extends: .gimp-debian/testing-base
variables:
CC: "clang"
CXX: "clang++"
script:
- apt-get install -y --no-install-recommends
clang libomp-dev
- meson _build
--prefix="${INSTALL_PREFIX}"
-Dpython=always
-Djavascript=always
-Dlua=always
- ninja -C _build
- ninja -C _build test
## WINDOWS 64-bit CI ##
deps-win64:
stage: dependencies
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
build-essential
cpio
gcc-mingw-w64-x86-64
g++-mingw-w64-x86-64
git
meson
pkg-config
python3-distutils
python3-docutils
python3-pip
rpm
- apt-get install -y --reinstall ca-certificates
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..
- pip3 install zstandard
script:
- export PATH="`pwd`/.local/bin:$PATH"
- crossroad w64 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 2 hours
paths:
- .local/
- _deps/
gimp-win64:
stage: gimp
dependencies:
- deps-win64
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
build-essential
cpio
gcc-mingw-w64-x86-64
g++-mingw-w64-x86-64
git
intltool
libgdk-pixbuf2.0-dev
libglib2.0-bin
meson
python3
rpm
xsltproc
script:
- export PATH="`pwd`/.local/bin:$PATH"
- mkdir _build && cd _build
- echo 'crossroad meson ..
-Dgtk-doc=false
-Dpython=always -Dlua=always
-Djavascript=always && ninja install &&
cp ../build/windows/crossbuild-gitlab-ci/gimp-wrapper.cmd $CROSSROAD_PREFIX/bin/ &&
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
' |
crossroad w64 gimp --run="-"
needs: ["deps-win64"]
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 day
paths:
- _build/
- gimp-prefix/
## WINDOWS 32-bit CI ##
deps-win32:
stage: dependencies
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
build-essential
cpio
gcc-mingw-w64-i686
g++-mingw-w64-i686
git
meson
pkg-config
python3-distutils
python3-docutils
python3-pip
rpm
- apt-get install -y --reinstall ca-certificates
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..
- pip3 install zstandard
script:
- export PATH="`pwd`/.local/bin:$PATH"
- crossroad w32 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 2 hours
paths:
- .local/
- _deps/
gimp-win32:
stage: gimp
dependencies:
- deps-win32
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
build-essential
cpio
gcc-mingw-w64-i686
g++-mingw-w64-i686
git
intltool
libgdk-pixbuf2.0-dev
libglib2.0-bin
meson
python3
rpm
xsltproc
script:
- export PATH="`pwd`/.local/bin:$PATH"
- mkdir _build && cd _build
- echo 'crossroad meson ..
-Dwmf=disabled -Dgtk-doc=false
-Dpython=always -Dlua=always
-Djavascript=always && ninja install &&
cp ../build/windows/crossbuild-gitlab-ci/gimp-wrapper.cmd $CROSSROAD_PREFIX/bin/ &&
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
' |
crossroad w32 gimp --run="-"
needs: ["deps-win32"]
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 day
paths:
- _build/
- gimp-prefix/
cppcheck:
stage: analysis
before_script:
- apt-get update
- apt-get install -y cppcheck
script:
- cppcheck -q -j8 --enable=all --force --output-file=cppcheck.xml --xml --xml-version=2
-i _build -i _deps -i gimp-prefix -i .local -i .cache .
- mkdir report
- cppcheck-htmlreport --source-dir=. --title=gimp --file=cppcheck.xml --report-dir=report
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
expire_in: 1 week
when: always
paths:
- report
needs: []