mirror of https://github.com/GNOME/gimp.git
364 lines
9.4 KiB
YAML
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: []
|