CI: use custom docker images for dependencies and GIMP builds
This commit is contained in:

committed by
Jehan

parent
30ad5cad68
commit
fdca56c94a
201
.gitlab-ci.yml
201
.gitlab-ci.yml
@ -1,6 +1,7 @@
|
|||||||
image: debian:testing
|
image: debian:testing
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- prepare
|
||||||
- dependencies
|
- dependencies
|
||||||
- gimp
|
- gimp
|
||||||
- analysis
|
- analysis
|
||||||
@ -11,10 +12,70 @@ variables:
|
|||||||
INSTALL_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
|
INSTALL_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
|
||||||
APT_CACHE: "${CI_PROJECT_DIR}/apt-cache"
|
APT_CACHE: "${CI_PROJECT_DIR}/apt-cache"
|
||||||
|
|
||||||
|
## prepare docker images ##
|
||||||
|
|
||||||
|
build-image:
|
||||||
|
stage: prepare
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: none
|
||||||
|
cache: {}
|
||||||
|
image:
|
||||||
|
name: gcr.io/kaniko-project/executor:debug
|
||||||
|
entrypoint: [""]
|
||||||
|
script:
|
||||||
|
- mkdir -p /kaniko/.docker
|
||||||
|
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||||
|
- echo "FROM debian:testing" > Dockerfile
|
||||||
|
- echo "RUN apt-get update" >> Dockerfile
|
||||||
|
- echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile
|
||||||
|
- echo "at-spi2-core build-essential desktop-file-utils ffmpeg ghostscript git glib-networking gobject-introspection graphviz-dev gtk-doc-tools hicolor-icon-theme 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 libraw-dev libraw19 librsvg2-dev libspiro-dev libsuitesparse-dev libtiff-dev libtiff5-dev libtool libumfpack5 libwebp-dev libwmf-dev libxmu-dev libxpm-dev luajit meson mypaint-brushes poppler-data python3 valac xauth xvfb" >> Dockerfile
|
||||||
|
|
||||||
|
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-debian-latest --cache=true --cache-ttl=120h
|
||||||
|
|
||||||
|
|
||||||
|
build-image-win64:
|
||||||
|
stage: prepare
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: none
|
||||||
|
cache: {}
|
||||||
|
image:
|
||||||
|
name: gcr.io/kaniko-project/executor:debug
|
||||||
|
entrypoint: [""]
|
||||||
|
script:
|
||||||
|
- mkdir -p /kaniko/.docker
|
||||||
|
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||||
|
- echo "FROM debian:testing" > Dockerfile
|
||||||
|
- echo "RUN apt-get update" >> Dockerfile
|
||||||
|
- echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile
|
||||||
|
- echo "build-essential cpio g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 git intltool libgdk-pixbuf2.0-dev libglib2.0-bin meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile
|
||||||
|
|
||||||
|
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-win64-latest --cache=true --cache-ttl=120h
|
||||||
|
|
||||||
|
|
||||||
|
build-image-win32:
|
||||||
|
stage: prepare
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: none
|
||||||
|
cache: {}
|
||||||
|
image:
|
||||||
|
name: gcr.io/kaniko-project/executor:debug
|
||||||
|
entrypoint: [""]
|
||||||
|
script:
|
||||||
|
- mkdir -p /kaniko/.docker
|
||||||
|
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||||
|
- echo "FROM debian:testing" > Dockerfile
|
||||||
|
- echo "RUN apt-get update" >> Dockerfile
|
||||||
|
- echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile
|
||||||
|
- echo "build-essential cpio g++-mingw-w64-i686 gcc-mingw-w64-i686 git intltool libgdk-pixbuf2.0-dev libglib2.0-bin meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile
|
||||||
|
|
||||||
|
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-win32-latest --cache=true --cache-ttl=120h
|
||||||
|
|
||||||
|
|
||||||
## GNU/Linux 64-bit CIs ##
|
## GNU/Linux 64-bit CIs ##
|
||||||
|
|
||||||
deps-debian/testing:
|
deps-debian/testing:
|
||||||
stage: dependencies
|
stage: dependencies
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-debian-latest
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- apt-cache
|
- apt-cache
|
||||||
@ -26,28 +87,6 @@ deps-debian/testing:
|
|||||||
- _babl/_build
|
- _babl/_build
|
||||||
- _gegl/_build
|
- _gegl/_build
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
build-essential
|
|
||||||
git
|
|
||||||
ffmpeg
|
|
||||||
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/babl.git _babl
|
||||||
- git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
|
- 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/pkgconfig"
|
||||||
@ -64,9 +103,11 @@ deps-debian/testing:
|
|||||||
- meson --prefix="${INSTALL_PREFIX}" _build
|
- meson --prefix="${INSTALL_PREFIX}" _build
|
||||||
- ninja -C _build
|
- ninja -C _build
|
||||||
- ninja -C _build install
|
- ninja -C _build install
|
||||||
|
needs: ["build-image"]
|
||||||
|
|
||||||
.gimp-debian/testing-base:
|
.gimp-debian/testing-base:
|
||||||
stage: gimp
|
stage: gimp
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-debian-latest
|
||||||
dependencies:
|
dependencies:
|
||||||
- deps-debian/testing
|
- deps-debian/testing
|
||||||
cache:
|
cache:
|
||||||
@ -80,53 +121,6 @@ deps-debian/testing:
|
|||||||
- _build
|
- _build
|
||||||
#- "${INSTALL_DIR}"
|
#- "${INSTALL_DIR}"
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
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
|
|
||||||
valac
|
|
||||||
xauth
|
|
||||||
xvfb
|
|
||||||
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/pkgconfig:${INSTALL_PREFIX}/share/pkgconfig"
|
- 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}/lib/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
|
||||||
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/share/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
|
- export PKG_CONFIG_PATH="${INSTALL_PREFIX}/share/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
|
||||||
@ -167,6 +161,7 @@ gimp-debian/testing-clang:
|
|||||||
CC: "clang"
|
CC: "clang"
|
||||||
CXX: "clang++"
|
CXX: "clang++"
|
||||||
script:
|
script:
|
||||||
|
- mkdir -p "$APT_CACHE"
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
||||||
clang libomp-dev
|
clang libomp-dev
|
||||||
- meson _build
|
- meson _build
|
||||||
@ -181,6 +176,7 @@ gimp-debian/testing-clang:
|
|||||||
|
|
||||||
deps-win64:
|
deps-win64:
|
||||||
stage: dependencies
|
stage: dependencies
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-win64-latest
|
||||||
variables:
|
variables:
|
||||||
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
||||||
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
||||||
@ -189,21 +185,6 @@ deps-win64:
|
|||||||
- .cache/crossroad/
|
- .cache/crossroad/
|
||||||
- apt-cache
|
- apt-cache
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
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
|
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
|
||||||
- cd crossroad
|
- cd crossroad
|
||||||
- ./setup.py install --prefix=`pwd`/../.local
|
- ./setup.py install --prefix=`pwd`/../.local
|
||||||
@ -219,9 +200,11 @@ deps-win64:
|
|||||||
paths:
|
paths:
|
||||||
- .local/
|
- .local/
|
||||||
- _deps/
|
- _deps/
|
||||||
|
needs: ["build-image-win64"]
|
||||||
|
|
||||||
gimp-win64:
|
gimp-win64:
|
||||||
stage: gimp
|
stage: gimp
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-win64-latest
|
||||||
dependencies:
|
dependencies:
|
||||||
- deps-win64
|
- deps-win64
|
||||||
variables:
|
variables:
|
||||||
@ -231,22 +214,6 @@ gimp-win64:
|
|||||||
paths:
|
paths:
|
||||||
- .cache/crossroad/
|
- .cache/crossroad/
|
||||||
- apt-cache
|
- apt-cache
|
||||||
before_script:
|
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
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:
|
script:
|
||||||
- export PATH="`pwd`/.local/bin:$PATH"
|
- export PATH="`pwd`/.local/bin:$PATH"
|
||||||
- mkdir _build && cd _build
|
- mkdir _build && cd _build
|
||||||
@ -271,6 +238,7 @@ gimp-win64:
|
|||||||
|
|
||||||
deps-win32:
|
deps-win32:
|
||||||
stage: dependencies
|
stage: dependencies
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-win32-latest
|
||||||
variables:
|
variables:
|
||||||
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
||||||
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
||||||
@ -279,21 +247,6 @@ deps-win32:
|
|||||||
- .cache/crossroad/
|
- .cache/crossroad/
|
||||||
- apt-cache
|
- apt-cache
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
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
|
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
|
||||||
- cd crossroad
|
- cd crossroad
|
||||||
- ./setup.py install --prefix=`pwd`/../.local
|
- ./setup.py install --prefix=`pwd`/../.local
|
||||||
@ -309,9 +262,11 @@ deps-win32:
|
|||||||
paths:
|
paths:
|
||||||
- .local/
|
- .local/
|
||||||
- _deps/
|
- _deps/
|
||||||
|
needs: ["build-image-win32"]
|
||||||
|
|
||||||
gimp-win32:
|
gimp-win32:
|
||||||
stage: gimp
|
stage: gimp
|
||||||
|
image: $CI_REGISTRY_IMAGE:build-win32-latest
|
||||||
dependencies:
|
dependencies:
|
||||||
- deps-win32
|
- deps-win32
|
||||||
variables:
|
variables:
|
||||||
@ -321,22 +276,6 @@ gimp-win32:
|
|||||||
paths:
|
paths:
|
||||||
- .cache/crossroad/
|
- .cache/crossroad/
|
||||||
- apt-cache
|
- apt-cache
|
||||||
before_script:
|
|
||||||
- mkdir -p $APT_CACHE
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
|
||||||
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:
|
script:
|
||||||
- export PATH="`pwd`/.local/bin:$PATH"
|
- export PATH="`pwd`/.local/bin:$PATH"
|
||||||
- mkdir _build && cd _build
|
- mkdir _build && cd _build
|
||||||
|
Reference in New Issue
Block a user