[gimp/wip/schumaml/tune-prepare-stage] build: move CI crossroad package install to image prepare



commit 8c684c7b2f02a55a75ffa1b95b696a1a43c25de7
Author: Michael Schumacher <schumaml gmx de>
Date:   Sat May 30 22:22:06 2020 +0200

    build: move CI crossroad package install to image prepare
    
    Also add base .jobs for win32 and win64 image and deps to avoid code duplication.

 .gitlab-ci.yml | 84 +++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 54 insertions(+), 30 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 573de7312f..d875417305 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -36,7 +36,7 @@ build-image:
     - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination 
$BUILD_IMAGE --cache=true --cache-ttl=120h
 
 
-build-image-win64:
+.build-image-win-base
   stage: prepare
   variables:
     GIT_STRATEGY: none
@@ -55,27 +55,32 @@ build-image-win64:
     - echo "RUN git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git" >> 
Dockerfile
     - echo "RUN cd crossroad && ./setup.py install --prefix=/usr/local" >> Dockerfile
 
+    - echo 'RUN echo "crossroad source msys2" > crossroad_deps_install.sh'
+    - echo 'RUN echo "crossroad install lcms2" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "crossroad install cairo json-glib" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "LIBMNG=" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "if [ \"x$CROSSROAD_PLATFORM\" = \"xw64\" ]; then" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "  LIBMNG="libmng" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "fi" >> crossroad_deps_install.sh'
+    - echo 'RUN echo "crossroad install appstream-glib atk drmingw gexiv2 ghostscript glib2 iso-codes json-c 
libheif libmypaint mypaint-brushes libwebp libwmf openexr ilmbase poppler poppler-data xpm-nox" >> 
crossroad_deps_install.sh'
+
     - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination 
$BUILD_IMAGE_WIN64 --cache=true --cache-ttl=120h
 
+build-image-win64:
+  extends: .build-image-win-base
+  script:
+    - echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile
+    - echo "g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64" >> Dockerfile
+
+    - crossroad w64 gimp --run="crossroad_deps_install.sh"
+
+    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination 
$BUILD_IMAGE_WIN64 --cache=true --cache-ttl=120h
 
 build-image-win32:
-  stage: prepare
-  variables:
-    GIT_STRATEGY: none
-  cache: {}
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
+  extends: .build-image-win-base
   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
-    - echo "RUN pip3 install zstandard" >> Dockerfile
-    - echo "RUN git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git" >> 
Dockerfile
-    - echo "RUN cd crossroad && ./setup.py install --prefix=/usr/local" >> Dockerfile
+    - echo "g++-mingw-w64-i686 gcc-mingw-w64-i686" >> Dockerfile
 
     - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination 
$BUILD_IMAGE_WIN32 --cache=true --cache-ttl=120h
 
@@ -181,11 +186,10 @@ gimp-debian/testing-clang:
     - ninja -C _build
     - ninja -C _build test
 
-## WINDOWS 64-bit CI ##
+## WINDOWS DEPS ##
 
-deps-win64:
+.deps-win-base
   stage: dependencies
-  image: $BUILD_IMAGE_WIN64
   variables:
     XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
     XDG_DATA_HOME:  "$CI_PROJECT_DIR/.local/share/"
@@ -194,7 +198,34 @@ deps-win64:
     - .cache/crossroad/
     - apt-cache
   script:
-    - crossroad w64 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
+    - echo "mkdir _deps && cd _deps" > crossroad_deps_build.sh
+    - echo "git clone --depth 1 https://gitlab.gnome.org/GNOME/babl.git"; >> crossroad_deps_build.sh
+    - echo "cd babl" >> crossroad_deps_build.sh
+    - echo "crossroad meson _build/ -Denable-gir=false -Dlibdir=lib" >> crossroad_deps_build.sh
+    - echo "ninja -C _build install || exit 1" >> crossroad_deps_build.sh
+    - echo "cd .." >> crossroad_deps_build.sh
+
+    - echo "crossroad install cairo json-glib" >> crossroad_deps_build.sh
+    - echo "git clone --depth 1 https://gitlab.gnome.org/GNOME/gegl.git"; >> crossroad_deps_build.sh
+    - echo "cd gegl" >> crossroad_deps_build.sh
+    - echo "crossroad meson _build/ -Dintrospection=false -Dsdl2=disabled -Dlibdir=lib" >> 
crossroad_deps_build.sh
+    - echo "ninja -C _build install || exit 1" >> crossroad_deps_build.sh
+    - echo "cd .." >> crossroad_deps_build.sh
+  artifacts:
+    name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
+    when: always
+    expire_in: 2 hours
+    paths:
+      - .local/
+      - _deps/
+
+## WINDOWS 64-bit CI ##
+
+deps-win64:
+  extends: .deps-win-base
+  image: $BUILD_IMAGE_WIN64
+  script:
+    - crossroad w64 gimp --run="crossroad_deps_build.sh"
   artifacts:
     name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
     when: always
@@ -238,17 +269,10 @@ gimp-win64:
 ## WINDOWS 32-bit CI ##
 
 deps-win32:
-  stage: dependencies
-  image: $BUILD_IMAGE_WIN32
-  variables:
-    XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
-    XDG_DATA_HOME:  "$CI_PROJECT_DIR/.local/share/"
-  cache:
-    paths:
-    - .cache/crossroad/
-    - apt-cache
+  extends: .deps-win-base
+  image: $BUILD_IMAGE_WIN64
   script:
-    - crossroad w32 gimp --run="build/windows/crossbuild-gitlab-ci/build-deps.sh"
+    - crossroad w32 gimp --run="crossroad_deps_build.sh"
   artifacts:
     name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
     when: always


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]