.gitlab-ci.yml 5.68 KB
Newer Older
Salamandar's avatar
Salamandar committed
1
image: salamandar/archlinux-gimp:latest
2

3
stages:
4
  - dependencies
5 6 7
  - gimp

variables:
Jehan's avatar
Jehan committed
8
  GIT_DEPTH: "1"
9
  INSTALL_DIR: "_install"
10 11
  INSTALL_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
  PACMAN_CACHE:   "${CI_PROJECT_DIR}/_pacman_cache"
12

13 14 15
deps-git:
  stage: dependencies
  cache:
16
    paths:
17
    - _pacman_cache
18
  artifacts:
19 20
    expire_in: 1 week
    when: always
21
    paths:
22
    - "${INSTALL_DIR}"
23
    - _babl/_build
24
    - _gegl/_build
25
  before_script:
26 27 28 29
    - export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/pkgconfig"
    - export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}"
    - export XDG_DATA_DIRS="${INSTALL_PREFIX}/share:/usr/local/share:/usr/share"
    - pacman -Syu --noconfirm --needed --cachedir "${PACMAN_CACHE}"
30 31 32 33 34 35
        git
        base-devel
        meson
        lcms2
        base-devel
        ffmpeg
36
        gobject-introspection
37 38 39 40 41 42 43 44 45 46 47 48 49 50
        graphviz
        jasper
        json-glib
        lcms2
        libgexiv2
        libraw
        librsvg
        libspiro
        libtiff
        luajit
        openexr
        python
        sdl2
        suitesparse
51
    - git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
52
    - git clone --depth="${GIT_DEPTH}" https://gitlab.gnome.org/GNOME/babl.git _babl
53
  script:
54 55 56 57 58
    - cd _babl
    - meson -Dprefix="${INSTALL_PREFIX}" _build
    - ninja -C _build
    - ninja -C _build install
    - cd ../_gegl
59
    - meson --prefix="${INSTALL_PREFIX}" _build
60 61
    - ninja -C _build
    - ninja -C _build install
62 63 64

.gimp-base:
  stage: gimp
65 66
  dependencies:
    - deps-git
67
  artifacts:
68 69 70
    expire_in: 1 week
    when: always
    name: "app-build-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
71
    paths:
72 73
    - _build
    #- "${INSTALL_DIR}"
74
  before_script:
75
    - export PKG_CONFIG_PATH="${INSTALL_PREFIX}/lib/pkgconfig:${INSTALL_PREFIX}/share/pkgconfig"
76 77 78
    - export LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}"
    - export XDG_DATA_DIRS="${INSTALL_PREFIX}/share:/usr/local/share:/usr/share"
    - pacman -Syu --noconfirm --needed --cachedir "${PACMAN_CACHE}"
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
        git
        base-devel
        appstream-glib
        at-spi2-core
        at-spi2-atk
        dbus-glib
        desktop-file-utils
        ffmpeg
        glib-networking
        gobject-introspection
        gtk3
        hicolor-icon-theme
        jasper
        lcms2
        libexif
        libgudev
        libheif
        libmng
        libmypaint
        librsvg
        libwebp
        libwmf
        libxmu
        libxpm
103
        mypaint-brushes1
104 105 106 107 108 109 110 111 112 113 114
        openexr
        poppler-data
        pygtk
        alsa-lib
        ghostscript
        poppler-glib
        gtk-doc
        intltool
        iso-codes
        xorg-server-xvfb

115
gimp-autotools:
116 117
  extends: .gimp-base
  script:
118
    - mkdir _build
119
    - cd _build
120
    - ../autogen.sh
121 122 123 124 125 126 127
        --prefix="${INSTALL_PREFIX}"
        --enable-debug
        --with-python=force
        --with-javascript=force
        --with-lua=force
    - make -j "$(nproc)"
    # - make check
128

129
gimp-meson:
Salamandar's avatar
Salamandar committed
130 131 132 133 134 135 136 137 138 139
  extends: .gimp-base
  script:
    - meson _build
      --prefix="${INSTALL_PREFIX}"
      -Dpython=always
      -Djavascript=always
      -Dlua=always
    - ninja -C _build
    # - ninja test

140
deps-x86_64-w64-mingw32:
141
  image: fedora:30
142 143 144 145 146 147 148 149
  stage: dependencies
  variables:
    XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
    XDG_DATA_HOME:  "$CI_PROJECT_DIR/.local/share/"
  cache:
    paths:
    - .cache/crossroad/
    - dnf_cache
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
  before_script:
    - dnf install --assumeyes --setopt=cachedir=`pwd`/dnf_cache --verbose
        automake
        autoconf
        meson
        cmake
        gettext
        git
        gcc
        gcc-c++
        gperf
        intltool
        libtool
        libxslt
        make
        python2
        mingw64-gcc
        mingw64-gcc-c++
        mingw64-binutils
        cpio rpm
        python3-docutils
        python3-pip
        python3-setuptools
        shared-mime-info
        which
        libmount-devel
        gdk-pixbuf2
        gdk-pixbuf2-devel
        glib2-devel
    #- pip3 install wheel
    #- pip3 install crossroad
    - git clone git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
    - cd crossroad
183
    - ./setup.py install --prefix=`pwd`/../.local
184
    - cd ..
185
    - gdk-pixbuf-query-loaders-64 > /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders.cache
186 187 188 189 190 191 192 193 194 195
  script:
    - export PATH="`pwd`/.local/bin:$PATH"
    - crossroad w64 gimp --run="build/windows/crossbuild-gitlab-ci.sh"
  artifacts:
    name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
    when: always
    expire_in: 1 week
    paths:
      - .local/
      - _deps/
196

197 198 199 200 201
gimp-x86_64-w64-mingw32-meson:
  image: fedora:30
  stage: gimp
  dependencies:
    - deps-x86_64-w64-mingw32
202 203
  variables:
    XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
204
    XDG_DATA_HOME:  "$CI_PROJECT_DIR/.local/share/"
205 206 207 208
  cache:
    paths:
    - .cache/crossroad/
    - dnf_cache
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
  before_script:
    - dnf install --assumeyes --setopt=cachedir=`pwd`/dnf_cache --verbose
        automake
        autoconf
        meson
        cmake
        gettext
        gcc
        gcc-c++
        gperf
        intltool
        libtool
        libxslt
        make
        python2
        mingw64-gcc
        mingw64-gcc-c++
        mingw64-binutils
        cpio rpm
        shared-mime-info
        which
        libmount-devel
        gdk-pixbuf2
        gdk-pixbuf2-devel
        glib2-devel
234
  script:
235 236 237 238 239 240 241
    - 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' |
      crossroad w64 gimp --run="-"
242
  artifacts:
243
    name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
244
    when: always
245 246 247
    expire_in: 1 week
    paths:
      - _build/
248
      #- "${CROSSROAD_PREFIX}"