2020-01-02 02:57:06 +08:00
|
|
|
image: debian:testing
|
2019-08-21 19:54:38 +08:00
|
|
|
|
2019-07-29 07:11:44 +08:00
|
|
|
stages:
|
2020-05-30 06:41:22 +08:00
|
|
|
- prepare
|
2019-10-02 03:36:19 +08:00
|
|
|
- dependencies
|
2019-07-29 07:11:44 +08:00
|
|
|
- gimp
|
2020-04-29 00:39:32 +08:00
|
|
|
- analysis
|
2020-08-07 22:41:05 +08:00
|
|
|
- distribution
|
2019-07-29 07:11:44 +08:00
|
|
|
|
|
|
|
variables:
|
2019-10-02 02:36:09 +08:00
|
|
|
GIT_DEPTH: "1"
|
2019-07-29 07:11:44 +08:00
|
|
|
INSTALL_DIR: "_install"
|
2019-08-21 19:54:38 +08:00
|
|
|
INSTALL_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
|
2020-05-29 01:51:50 +08:00
|
|
|
APT_CACHE: "${CI_PROJECT_DIR}/apt-cache"
|
2019-07-29 07:11:44 +08:00
|
|
|
|
2020-05-30 06:41:22 +08:00
|
|
|
## 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
|
2020-12-06 03:57:25 +08:00
|
|
|
- echo "at-spi2-core build-essential desktop-file-utils ffmpeg ghostscript git glib-networking gobject-introspection graphviz 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 libraw20 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
|
2020-05-30 06:41:22 +08:00
|
|
|
|
|
|
|
- /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:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2020-05-30 06:41:22 +08:00
|
|
|
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:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2020-05-30 06:41:22 +08:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
## GNU/Linux 64-bit CIs (Debian testing) ##
|
2019-11-25 02:41:06 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
deps-debian:
|
2019-10-02 03:36:19 +08:00
|
|
|
stage: dependencies
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-debian-latest
|
2019-10-02 03:36:19 +08:00
|
|
|
cache:
|
2019-07-29 07:11:44 +08:00
|
|
|
paths:
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-cache
|
2019-07-29 07:11:44 +08:00
|
|
|
artifacts:
|
2020-05-04 00:29:43 +08:00
|
|
|
expire_in: 2 hours
|
2019-10-02 00:36:07 +08:00
|
|
|
when: always
|
2019-07-29 07:11:44 +08:00
|
|
|
paths:
|
2019-08-21 19:54:38 +08:00
|
|
|
- "${INSTALL_DIR}"
|
2019-10-02 03:36:19 +08:00
|
|
|
- _babl/_build
|
2019-10-02 00:36:07 +08:00
|
|
|
- _gegl/_build
|
2019-07-29 07:11:44 +08:00
|
|
|
before_script:
|
2020-01-02 02:57:06 +08:00
|
|
|
- git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/babl.git _babl
|
2019-08-21 19:54:38 +08:00
|
|
|
- git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
|
2020-01-02 02:57:06 +08:00
|
|
|
- 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"
|
2019-07-29 07:11:44 +08:00
|
|
|
script:
|
2019-10-02 03:36:19 +08:00
|
|
|
- cd _babl
|
|
|
|
- meson -Dprefix="${INSTALL_PREFIX}" _build
|
|
|
|
- ninja -C _build
|
|
|
|
- ninja -C _build install
|
|
|
|
- cd ../_gegl
|
2019-08-21 19:54:38 +08:00
|
|
|
- meson --prefix="${INSTALL_PREFIX}" _build
|
2019-08-17 03:30:57 +08:00
|
|
|
- ninja -C _build
|
|
|
|
- ninja -C _build install
|
2020-05-30 06:41:22 +08:00
|
|
|
needs: ["build-image"]
|
2019-07-29 07:11:44 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
.gimp-debian-base:
|
2019-07-29 07:11:44 +08:00
|
|
|
stage: gimp
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-debian-latest
|
2019-10-02 03:36:19 +08:00
|
|
|
dependencies:
|
2020-08-06 19:21:05 +08:00
|
|
|
- deps-debian
|
2020-05-29 01:51:50 +08:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- apt-cache
|
2019-07-29 07:11:44 +08:00
|
|
|
artifacts:
|
2020-05-09 19:19:18 +08:00
|
|
|
expire_in: 1 days
|
2019-10-02 00:36:07 +08:00
|
|
|
when: always
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "app-build-${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2019-07-29 07:11:44 +08:00
|
|
|
paths:
|
2019-10-02 00:36:07 +08:00
|
|
|
- _build
|
|
|
|
#- "${INSTALL_DIR}"
|
2019-07-29 07:11:44 +08:00
|
|
|
before_script:
|
2020-01-02 02:57:06 +08:00
|
|
|
- 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"
|
2020-08-06 19:21:05 +08:00
|
|
|
needs: ["deps-debian"]
|
2019-07-29 07:11:44 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
gimp-autotools-debian:
|
|
|
|
extends: .gimp-debian-base
|
2019-07-29 07:11:44 +08:00
|
|
|
script:
|
2019-08-21 19:54:38 +08:00
|
|
|
- mkdir _build
|
2019-07-29 07:11:44 +08:00
|
|
|
- cd _build
|
2019-09-11 23:09:05 +08:00
|
|
|
- ../autogen.sh
|
2019-08-21 19:54:38 +08:00
|
|
|
--prefix="${INSTALL_PREFIX}"
|
|
|
|
--enable-debug
|
|
|
|
- make -j "$(nproc)"
|
2020-03-18 02:43:27 +08:00
|
|
|
- make check
|
2019-07-29 07:11:44 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
gimp-distcheck-debian:
|
|
|
|
extends: .gimp-debian-base
|
2020-08-03 08:27:29 +08:00
|
|
|
script:
|
|
|
|
- mkdir _build
|
|
|
|
- cd _build
|
|
|
|
- ../autogen.sh
|
|
|
|
--prefix="${INSTALL_PREFIX}"
|
|
|
|
--enable-debug
|
|
|
|
--enable-gtk-doc
|
|
|
|
- make -j "$(nproc)"
|
2020-08-07 21:30:05 +08:00
|
|
|
- make -j "$(nproc)" distcheck
|
2020-08-03 08:27:29 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
gimp-meson-debian:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2020-08-06 19:21:05 +08:00
|
|
|
extends: .gimp-debian-base
|
2019-08-09 22:18:43 +08:00
|
|
|
script:
|
|
|
|
- meson _build
|
|
|
|
--prefix="${INSTALL_PREFIX}"
|
|
|
|
- ninja -C _build
|
2020-01-04 05:55:09 +08:00
|
|
|
- ninja -C _build test
|
2019-08-09 22:18:43 +08:00
|
|
|
|
2020-08-06 19:21:05 +08:00
|
|
|
gimp-clang-debian:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2020-08-06 19:21:05 +08:00
|
|
|
extends: .gimp-debian-base
|
2020-01-03 07:19:10 +08:00
|
|
|
variables:
|
|
|
|
CC: "clang"
|
|
|
|
CXX: "clang++"
|
|
|
|
script:
|
2020-05-30 06:41:22 +08:00
|
|
|
- mkdir -p "$APT_CACHE"
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
2020-03-16 05:21:19 +08:00
|
|
|
clang libomp-dev
|
2020-01-03 07:19:10 +08:00
|
|
|
- meson _build
|
|
|
|
--prefix="${INSTALL_PREFIX}"
|
|
|
|
- ninja -C _build
|
2020-01-04 05:55:09 +08:00
|
|
|
- ninja -C _build test
|
2020-01-03 07:19:10 +08:00
|
|
|
|
2019-11-25 02:41:06 +08:00
|
|
|
## WINDOWS 64-bit CI ##
|
|
|
|
|
2021-05-02 21:43:25 +08:00
|
|
|
gimp-native-win64:
|
|
|
|
variables:
|
|
|
|
MSYSTEM: "MINGW64"
|
|
|
|
CHERE_INVOKING: "yes"
|
|
|
|
stage: gimp
|
|
|
|
tags:
|
|
|
|
- win32-ps
|
|
|
|
script:
|
|
|
|
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
|
|
|
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/build-msys2.sh"
|
|
|
|
needs: []
|
|
|
|
|
2019-11-26 02:16:40 +08:00
|
|
|
deps-win64:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2019-10-02 03:36:19 +08:00
|
|
|
stage: dependencies
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-win64-latest
|
2019-10-02 03:36:19 +08:00
|
|
|
variables:
|
|
|
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
|
|
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .cache/crossroad/
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-cache
|
2019-09-25 20:27:09 +08:00
|
|
|
before_script:
|
2020-10-02 19:21:21 +08:00
|
|
|
- apt-get update
|
|
|
|
- apt-get install -y --no-install-recommends wine wine64
|
|
|
|
|
2020-04-16 21:19:36 +08:00
|
|
|
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
|
2019-09-25 20:27:09 +08:00
|
|
|
- cd crossroad
|
2019-10-02 03:36:19 +08:00
|
|
|
- ./setup.py install --prefix=`pwd`/../.local
|
2019-09-25 20:27:09 +08:00
|
|
|
- cd ..
|
2020-04-27 20:46:11 +08:00
|
|
|
- pip3 install zstandard
|
2019-10-02 03:36:19 +08:00
|
|
|
script:
|
|
|
|
- export PATH="`pwd`/.local/bin:$PATH"
|
2019-10-25 04:20:20 +08:00
|
|
|
- crossroad w64 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
|
2019-10-02 03:36:19 +08:00
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2019-10-02 03:36:19 +08:00
|
|
|
when: always
|
2020-05-04 00:29:43 +08:00
|
|
|
expire_in: 2 hours
|
2019-10-02 03:36:19 +08:00
|
|
|
paths:
|
|
|
|
- .local/
|
|
|
|
- _deps/
|
2020-05-30 06:41:22 +08:00
|
|
|
needs: ["build-image-win64"]
|
2019-09-25 20:27:09 +08:00
|
|
|
|
2019-11-26 02:16:40 +08:00
|
|
|
gimp-win64:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2019-10-02 03:36:19 +08:00
|
|
|
stage: gimp
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-win64-latest
|
2019-10-02 03:36:19 +08:00
|
|
|
dependencies:
|
2019-11-26 02:16:40 +08:00
|
|
|
- deps-win64
|
2019-10-01 19:44:42 +08:00
|
|
|
variables:
|
|
|
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
2019-10-02 03:36:19 +08:00
|
|
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
2019-10-01 19:44:42 +08:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .cache/crossroad/
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-cache
|
2019-09-25 20:27:09 +08:00
|
|
|
script:
|
2019-10-02 03:36:19 +08:00
|
|
|
- export PATH="`pwd`/.local/bin:$PATH"
|
|
|
|
- mkdir _build && cd _build
|
|
|
|
- echo 'crossroad meson ..
|
2020-10-13 04:02:46 +08:00
|
|
|
-Dgtk-doc=false && ninja install &&
|
2019-10-25 04:47:56 +08:00
|
|
|
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
|
2019-10-25 04:20:20 +08:00
|
|
|
' |
|
2019-10-02 03:36:19 +08:00
|
|
|
crossroad w64 gimp --run="-"
|
2019-11-26 02:16:40 +08:00
|
|
|
needs: ["deps-win64"]
|
2019-09-25 20:27:09 +08:00
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2019-10-02 00:36:07 +08:00
|
|
|
when: always
|
2020-05-09 19:19:18 +08:00
|
|
|
expire_in: 1 day
|
2019-09-25 20:27:09 +08:00
|
|
|
paths:
|
|
|
|
- _build/
|
2019-10-25 04:47:56 +08:00
|
|
|
- gimp-prefix/
|
2019-11-25 02:41:06 +08:00
|
|
|
|
|
|
|
## WINDOWS 32-bit CI ##
|
|
|
|
|
2019-11-26 02:16:40 +08:00
|
|
|
deps-win32:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2019-11-25 02:41:06 +08:00
|
|
|
stage: dependencies
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-win32-latest
|
2019-11-25 02:41:06 +08:00
|
|
|
variables:
|
|
|
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
|
|
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .cache/crossroad/
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-cache
|
2019-11-25 02:41:06 +08:00
|
|
|
before_script:
|
2020-04-16 21:19:36 +08:00
|
|
|
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
|
2019-11-25 02:41:06 +08:00
|
|
|
- cd crossroad
|
|
|
|
- ./setup.py install --prefix=`pwd`/../.local
|
|
|
|
- cd ..
|
2020-04-27 20:46:11 +08:00
|
|
|
- pip3 install zstandard
|
2019-11-25 02:41:06 +08:00
|
|
|
script:
|
|
|
|
- export PATH="`pwd`/.local/bin:$PATH"
|
|
|
|
- crossroad w32 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
|
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2019-11-25 02:41:06 +08:00
|
|
|
when: always
|
2020-05-09 19:19:18 +08:00
|
|
|
expire_in: 2 hours
|
2019-11-25 02:41:06 +08:00
|
|
|
paths:
|
|
|
|
- .local/
|
|
|
|
- _deps/
|
2020-05-30 06:41:22 +08:00
|
|
|
needs: ["build-image-win32"]
|
2019-11-25 02:41:06 +08:00
|
|
|
|
2019-11-26 02:16:40 +08:00
|
|
|
gimp-win32:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
2019-11-25 02:41:06 +08:00
|
|
|
stage: gimp
|
2020-05-30 06:41:22 +08:00
|
|
|
image: $CI_REGISTRY_IMAGE:build-win32-latest
|
2019-11-25 02:41:06 +08:00
|
|
|
dependencies:
|
2019-11-26 02:16:40 +08:00
|
|
|
- deps-win32
|
2019-11-25 02:41:06 +08:00
|
|
|
variables:
|
|
|
|
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
|
|
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .cache/crossroad/
|
2020-05-29 01:51:50 +08:00
|
|
|
- apt-cache
|
2019-11-25 02:41:06 +08:00
|
|
|
script:
|
|
|
|
- export PATH="`pwd`/.local/bin:$PATH"
|
|
|
|
- mkdir _build && cd _build
|
|
|
|
- echo 'crossroad meson ..
|
2020-12-06 04:43:27 +08:00
|
|
|
-Dwmf=disabled -Dmng=disabled -Dgtk-doc=false && ninja install &&
|
2019-11-25 02:41:06 +08:00
|
|
|
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
|
|
|
|
' |
|
|
|
|
crossroad w32 gimp --run="-"
|
2019-11-26 02:16:40 +08:00
|
|
|
needs: ["deps-win32"]
|
2019-11-25 02:41:06 +08:00
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2019-11-25 02:41:06 +08:00
|
|
|
when: always
|
2020-05-04 00:29:43 +08:00
|
|
|
expire_in: 1 day
|
2019-11-25 02:41:06 +08:00
|
|
|
paths:
|
|
|
|
- _build/
|
|
|
|
- gimp-prefix/
|
2020-04-29 00:39:32 +08:00
|
|
|
|
|
|
|
cppcheck:
|
|
|
|
stage: analysis
|
|
|
|
before_script:
|
|
|
|
- apt-get update
|
|
|
|
- apt-get install -y cppcheck
|
|
|
|
script:
|
2020-04-29 20:05:31 +08:00
|
|
|
- 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 .
|
2020-04-29 00:39:32 +08:00
|
|
|
- mkdir report
|
|
|
|
- cppcheck-htmlreport --source-dir=. --title=gimp --file=cppcheck.xml --report-dir=report
|
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
|
2020-04-29 00:39:32 +08:00
|
|
|
expire_in: 1 week
|
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- report
|
2020-05-05 22:21:43 +08:00
|
|
|
needs: []
|
2020-08-07 22:41:05 +08:00
|
|
|
|
|
|
|
## Ready-to-distribute ##
|
|
|
|
|
|
|
|
sources:
|
|
|
|
stage: distribution
|
|
|
|
dependencies:
|
|
|
|
- gimp-distcheck-debian
|
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "GIMP-sources-${CI_COMMIT_SHORT_SHA}"
|
2020-08-07 22:41:05 +08:00
|
|
|
when: always
|
2020-12-01 06:31:30 +08:00
|
|
|
expire_in: 2 days
|
2020-08-07 22:41:05 +08:00
|
|
|
paths:
|
2021-04-26 23:45:11 +08:00
|
|
|
- gimp-*.tar.bz2
|
|
|
|
- gimp-*.tar.bz2.SHA256SUMS
|
|
|
|
- gimp-*.tar.bz2.SHA512SUMS
|
2020-08-07 22:41:05 +08:00
|
|
|
script:
|
2021-04-26 23:45:11 +08:00
|
|
|
- mv _build/gimp-*.tar.bz2 .
|
|
|
|
- FILENAME=`ls gimp-*.tar.bz2` &&
|
|
|
|
sha256sum gimp-*.tar.bz2 > ${FILENAME}.SHA256SUMS &&
|
|
|
|
sha512sum gimp-*.tar.bz2 > ${FILENAME}.SHA512SUMS
|
2020-08-07 22:41:05 +08:00
|
|
|
needs: ["gimp-distcheck-debian"]
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
|
|
|
|
win64-nightly:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
stage: distribution
|
|
|
|
dependencies:
|
|
|
|
- gimp-win64
|
|
|
|
variables:
|
|
|
|
GIMP_PREFIX: "gimp-prefix"
|
|
|
|
GIMP_DISTRIB: "gimp-w64"
|
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "GIMP-Win64-CI-${CI_COMMIT_SHORT_SHA}"
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
when: always
|
2020-12-01 06:31:30 +08:00
|
|
|
expire_in: 2 days
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
paths:
|
|
|
|
- gimp-w64
|
|
|
|
script:
|
|
|
|
- apt-get update
|
2020-10-02 18:46:32 +08:00
|
|
|
- apt-get install -y --no-install-recommends
|
|
|
|
python3 binutils-mingw-w64-x86-64 file
|
|
|
|
libglib2.0-bin
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
|
|
|
|
# Package ressources.
|
|
|
|
- mkdir -p ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/etc ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/include ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/ssl ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/share ${GIMP_DISTRIB}
|
|
|
|
|
|
|
|
# Package executables.
|
|
|
|
- mkdir ${GIMP_DISTRIB}/bin
|
|
|
|
- cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
|
|
|
|
|
|
|
|
- mkdir ${GIMP_DISTRIB}/libexec
|
|
|
|
- cp -fr ${GIMP_PREFIX}/libexec/gimp*.exe ${GIMP_DISTRIB}/libexec/
|
|
|
|
|
2020-10-02 18:46:32 +08:00
|
|
|
# Add a wrapper at tree root, less messy than having to look for the
|
|
|
|
# binary inside bin/, in the middle of all the DLLs.
|
|
|
|
- echo "bin\gimp-2.99.exe" > ${GIMP_DISTRIB}/gimp.cmd
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
|
|
|
|
# Package library data and modules.
|
|
|
|
- mkdir ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gimp ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gio ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gdk-pixbuf-2.0 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gegl-0.4 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/babl-0.1 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/girepository-1.0 ${GIMP_DISTRIB}/lib/
|
|
|
|
|
2020-10-02 18:46:32 +08:00
|
|
|
# Generate share/glib-2.0/schemas/gschemas.compiled
|
|
|
|
- glib-compile-schemas --targetdir=${GIMP_DISTRIB}/share/glib-2.0/schemas ${GIMP_DISTRIB}/share/glib-2.0/schemas
|
|
|
|
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
# Package needed DLLs only
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
needs: ["gimp-win64"]
|
|
|
|
|
|
|
|
win32-nightly:
|
2021-04-26 23:45:11 +08:00
|
|
|
rules:
|
|
|
|
- if: '$CI_COMMIT_TAG == null'
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
stage: distribution
|
|
|
|
dependencies:
|
|
|
|
- gimp-win32
|
2020-10-02 19:21:21 +08:00
|
|
|
- deps-win64
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
variables:
|
|
|
|
GIMP_PREFIX: "gimp-prefix"
|
|
|
|
GIMP_DISTRIB: "gimp-w32"
|
2020-10-02 19:21:21 +08:00
|
|
|
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
artifacts:
|
2020-10-04 00:04:27 +08:00
|
|
|
name: "GIMP-Win32-${CI_COMMIT_SHORT_SHA}"
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
when: always
|
2020-12-01 06:31:30 +08:00
|
|
|
expire_in: 2 days
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
paths:
|
|
|
|
- gimp-w32
|
|
|
|
script:
|
|
|
|
- apt-get update
|
2020-10-02 18:46:32 +08:00
|
|
|
- apt-get install -y --no-install-recommends
|
|
|
|
python3 binutils-mingw-w64-i686 file
|
|
|
|
libglib2.0-bin
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
|
|
|
|
# Package ressources.
|
|
|
|
- mkdir -p ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/etc ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/include ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/ssl ${GIMP_DISTRIB}
|
|
|
|
- cp -fr ${GIMP_PREFIX}/share ${GIMP_DISTRIB}
|
|
|
|
|
|
|
|
# Package executables.
|
|
|
|
- mkdir ${GIMP_DISTRIB}/bin
|
|
|
|
- cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
|
|
|
|
|
|
|
|
- mkdir ${GIMP_DISTRIB}/libexec
|
|
|
|
- cp -fr ${GIMP_PREFIX}/libexec/gimp*.exe ${GIMP_DISTRIB}/libexec/
|
|
|
|
|
2020-10-02 18:46:32 +08:00
|
|
|
# Add a wrapper at tree root, less messy than having to look for the
|
|
|
|
# binary inside bin/, in the middle of all the DLLs.
|
|
|
|
- echo "bin\gimp-2.99.exe" > ${GIMP_DISTRIB}/gimp.cmd
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
|
|
|
|
# Package library data and modules.
|
|
|
|
- mkdir ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gimp ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gio ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gdk-pixbuf-2.0 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/gegl-0.4 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/babl-0.1 ${GIMP_DISTRIB}/lib/
|
|
|
|
- cp -fr ${GIMP_PREFIX}/lib/girepository-1.0 ${GIMP_DISTRIB}/lib/
|
|
|
|
|
2020-10-02 18:46:32 +08:00
|
|
|
# I fail to install wine32 inside the Gitlab runner. So instead, I
|
2020-10-02 19:21:21 +08:00
|
|
|
# just reuse the loaders.cache generated in the deps-win64 job as
|
2020-10-02 18:46:32 +08:00
|
|
|
# they should be the same (text format).
|
2020-10-02 19:21:21 +08:00
|
|
|
- cp ${XDG_DATA_HOME}/crossroad/roads/w64/gimp/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
2020-10-02 18:46:32 +08:00
|
|
|
|
|
|
|
# Generate share/glib-2.0/schemas/gschemas.compiled
|
|
|
|
- glib-compile-schemas --targetdir=${GIMP_DISTRIB}/share/glib-2.0/schemas ${GIMP_DISTRIB}/share/glib-2.0/schemas
|
|
|
|
|
gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.
The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).
Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-09-30 01:38:23 +08:00
|
|
|
# Package needed DLLs only.
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
- python3 build/windows/crossbuild-gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB}
|
|
|
|
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
|
|
|
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
|
|
|
|
python3 build/windows/crossbuild-gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB};
|
|
|
|
done
|
2020-10-02 19:21:21 +08:00
|
|
|
needs: ["gimp-win32", "deps-win64"]
|