gimp/.gitlab-ci.yml

1194 lines
42 KiB
YAML
Raw Normal View History

# Default commit CI should only run the following pipelines:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - Linux native GCC build (base & fast)
# - Win64 crossbuild (base & fast)
# Scheduled CI ($CI_PIPELINE_SOURCE == "schedule") will run regularly:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - Linux native CLang build (rare usefulness)
# - Win32 crossbuild (rare usefulness)
# - Win Aarch64/64/32 native builds (base but slow)
# - Flatpak build (slow and doesn't need constant publishing)
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - cppcheck (static code analysis)
# Releases ($CI_COMMIT_TAG != null) should run only:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - Win Aarch64/64/32 native builds (Inno Windows installer creation)
#
# To force step-specific pipelines without waiting for commits and/or
# pipelines, these are the variable you should set:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - GIMP_CI_MESON_GCC: trigger the Debian gcc build.
# - GIMP_CI_MESON_CLANG: trigger the Debian clang build.
# - GIMP_CI_RASTER_ICONS: trigger the Debian build without vector icons.
# - GIMP_CI_CROSSROAD_WIN64: trigger the crossroad build for Win 64-bit.
# - GIMP_CI_CROSSROAD_WIN32: trigger the crossroad build for Win 32-bit.
# - GIMP_CI_MSYS2_WIN_AARCH64: trigger the native MSYS2 build for Win Aarch64.
# - GIMP_CI_MSYS2_WIN64: trigger the native MSYS2 build for Win 64-bit.
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# - GIMP_CI_MSYS2_WIN32: trigger the native MSYS2 build for Win 32-bit.
# - GIMP_CI_FLATPAK: trigger the (normally) weekly flatpak build and publishing.
# - GIMP_CI_WIN_INSTALLER: trigger all native MSYS2 builds then creates Inno Windows installer.
# - GIMP_CI_SOURCES: trigger the Debian gcc build and the source tarball job.
# - GIMP_CI_CPPCHECK: trigger cppcheck static analysis.
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
image: debian:bookworm
2019-08-21 19:54:38 +08:00
stages:
- prepare
- dependencies
- gimp
- packaging
- distribution
- analysis
variables:
GIT_DEPTH: "1"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
INSTALL_DIR: "_install-x64"
GIMP_PREFIX: "${CI_PROJECT_DIR}/${INSTALL_DIR}"
APT_CACHE: "${CI_PROJECT_DIR}/apt-cache"
## prepare docker images ##
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
image-debian-x64:
rules:
# On commits and merge requests.
- if: '$CI_PIPELINE_SOURCE == "push"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MESON_GCC != null'
- if: '$GIMP_CI_MESON_CLANG != null'
- if: '$GIMP_CI_RASTER_ICONS != null'
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- if: '$GIMP_CI_SOURCES != null'
# This is needed for the BMP image generation for the installer.
# See commit e1203e9f76f.
- if: '$GIMP_CI_WIN_INSTALLER != null'
stage: prepare
variables:
GIT_STRATEGY: none
cache: {}
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- export container=docker
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- echo "FROM debian:bookworm" > Dockerfile
- echo "RUN apt-get update" >> Dockerfile
- echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile
- echo "appstream
at-spi2-core
build-essential
desktop-file-utils
ffmpeg
gettext
ghostscript
gi-docgen
git
glib-networking
gobject-introspection
graphviz
graphviz-dev
hicolor-icon-theme
iso-codes
libaa1-dev
libappstream-glib-dev
libbz2-dev
libcfitsio-dev
libdbus-glib-1-dev
libexif-dev
libgexiv2-dev
libgirepository1.0-dev
libgs-dev
libgtk-3-bin
libgtk-3-dev
libgudev-1.0-dev
libheif-dev
libjson-glib-dev
libjxl-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
python3-gi
python3-pip
valac
xauth
xsltproc
xvfb
xz-utils
yelp-tools" >> Dockerfile
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-debian-latest --cache=true --cache-ttl=120h
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
image-win-x64-cross:
rules:
# On commits except tags.
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'
# On merge requests.
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_CROSSROAD_WIN64 != null'
stage: prepare
variables:
GIT_STRATEGY: none
cache: {}
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- export container=docker
- 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
# libjxl uses C++ features that require posix threads so we install
# specifically g++-mingw-w64-x86-64-posix and gcc-mingw-w64-x86-64-posix.
# Note that we can't install both the -posix and -win32 versions since
# update gcc-mingw-w64 (25).
- echo "build-essential
cmake
cpio
g++-mingw-w64-x86-64-posix
gcc-mingw-w64-x86-64-posix
gettext
git
libgdk-pixbuf2.0-dev
libgirepository1.0-dev
libglib2.0-bin
librsvg2-dev
meson
pkg-config
python3
python3-distutils
python3-docutils
python3-pip
rpm
python3-zstandard
xsltproc
xvfb" >> Dockerfile
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-win64-latest --cache=true --cache-ttl=120h
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
image-win-x86-cross:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
stage: prepare
variables:
GIT_STRATEGY: none
cache: {}
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- export container=docker
- 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
gettext
git
libgdk-pixbuf2.0-dev
libglib2.0-bin
librsvg2-dev
meson
pkg-config
python3
python3-distutils
python3-docutils
python3-pip
python3-zstandard
rpm
xsltproc
xvfb" >> 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 (Debian bookworm) ##
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
deps-debian-x64:
rules:
# On commits and merge requests.
- if: '$CI_PIPELINE_SOURCE == "push"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_SOURCES != null'
- if: '$GIMP_CI_MESON_GCC != null'
- if: '$GIMP_CI_MESON_CLANG != null'
- if: '$GIMP_CI_RASTER_ICONS != null'
# This is needed for the BMP image generation for the installer.
# See commit e1203e9f76f.
- if: '$GIMP_CI_WIN_INSTALLER != null'
stage: dependencies
image: $CI_REGISTRY_IMAGE:build-debian-latest
cache:
paths:
- apt-cache
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
expire_in: 2 hours
when: always
paths:
2019-08-21 19:54:38 +08:00
- "${INSTALL_DIR}"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- _babl/_build-x64
- _gegl/_build-x64
before_script:
- 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
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- export PKG_CONFIG_PATH="${GIMP_PREFIX}/lib/pkgconfig"
- export PKG_CONFIG_PATH="${GIMP_PREFIX}/lib/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib:${LD_LIBRARY_PATH}"
- export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib/`gcc -print-multiarch`:$LD_LIBRARY_PATH"
- export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/usr/local/share:/usr/share"
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- mkdir _babl/_build-x64 && cd _babl/_build-x64
- meson setup .. -Dprefix="${GIMP_PREFIX}"
- ninja && ninja install
- mkdir ../../_gegl/_build-x64 && cd ../../_gegl/_build-x64
- meson setup .. -Dprefix="${GIMP_PREFIX}"
- ninja && ninja install
needs: ["image-debian-x64"]
.gimp-debian-base:
stage: gimp
image: $CI_REGISTRY_IMAGE:build-debian-latest
dependencies:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- deps-debian-x64
cache:
paths:
- apt-cache
artifacts:
expire_in: 1 days
when: always
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
paths:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- _build-x64
- "${INSTALL_DIR}"
before_script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- export PATH="${GIMP_PREFIX}/bin:$PATH"
- export PKG_CONFIG_PATH="${GIMP_PREFIX}/lib/pkgconfig:${GIMP_PREFIX}/share/pkgconfig"
- export PKG_CONFIG_PATH="${GIMP_PREFIX}/lib/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export PKG_CONFIG_PATH="${GIMP_PREFIX}/share/`gcc -print-multiarch`/pkgconfig/:$PKG_CONFIG_PATH"
- export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib:${LD_LIBRARY_PATH}"
- export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib/`gcc -print-multiarch`:$LD_LIBRARY_PATH"
- export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/usr/local/share:/usr/share"
- export GI_TYPELIB_PATH="${GIMP_PREFIX}/lib/`gcc -print-multiarch`/girepository-1.0/:${GI_TYPELIB_PATH}"
needs: ["deps-debian-x64"]
gimp-debian-x64:
rules:
# On commits and merge requests.
- if: '$CI_PIPELINE_SOURCE == "push"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# Custom builds though web GUI, API or schedules.
# This is needed for the BMP image generation for the installer.
# See commit e1203e9f76f.
- if: '$GIMP_CI_WIN_INSTALLER != null'
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MESON_GCC != null'
- if: '$GIMP_CI_SOURCES != null'
extends: .gimp-debian-base
2019-08-09 22:18:43 +08:00
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- mkdir -p _build-x64 && cd _build-x64
- meson setup .. -Dprefix="${GIMP_PREFIX}"
-Dgi-docgen=enabled
-Dg-ir-doc=true
-Dwindows-installer=true
- ninja && ninja test
# The src should not be changed by the build. If it is, something is
# wrong. Let's print out the diff for debugging in such case, and
# exit to fail the CI.
- if [ $(git diff |wc -l) -ne 0 ]; then
git diff;
exit 1;
fi
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- ninja dist && ninja install
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
reports:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
junit: "_build-x64/meson-logs/testlog.junit.xml"
paths:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- "_build-x64/config.h"
- "_build-x64/meson-logs"
- "_build-x64/meson-dist"
- "_build-x64/devel-docs"
- "_build-x64/build/windows/installer/"
- "${INSTALL_DIR}"
2019-08-09 22:18:43 +08:00
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
gimp-debian-clang:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_MESON_CLANG != null'
extends: .gimp-debian-base
2020-01-03 07:19:10 +08:00
variables:
CC: "clang"
CXX: "clang++"
script:
- mkdir -p "$APT_CACHE"
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
clang
libomp-dev
- mkdir -p _build-x64 && cd _build-x64
- meson setup .. -Dprefix="${GIMP_PREFIX}"
- ninja && ninja test
2020-01-03 07:19:10 +08:00
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
gimp-debian-raster-icons:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_RASTER_ICONS != null'
extends: .gimp-debian-base
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- mkdir -p _build-x64 && cd _build-x64
- meson setup .. -Dprefix="${GIMP_PREFIX}"
-Dvector-icons=false
- ninja && ninja test
## WINDOWS 64-bit CI (cross-build crossroad) ##
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
deps-win-x64-cross:
rules:
# On commits except tags.
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'
# On merge requests.
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_CROSSROAD_WIN64 != null'
stage: dependencies
image: $CI_REGISTRY_IMAGE:build-win64-latest
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
# Needed because by default, Debian has now changed
# "sysconfig.get_default_scheme()" from "posix_prefix" to "posix_local" which
# adds a local/ folder to the install prefix of setup.py. This environment
# variable overrides this behavior.
DEB_PYTHON_INSTALL_LAYOUT: "deb"
cache:
paths:
- .cache/crossroad/
- apt-cache
before_script:
- apt-get update
- apt-get install -y --no-install-recommends wine wine64
- git clone --depth=${GIT_DEPTH} https://gitlab.freedesktop.org/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..
script:
- export PATH="`pwd`/.local/bin:$PATH"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- crossroad w64 gimp --run="build/windows/gitlab-ci/1_build-deps-crossroad.sh"
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 hours
paths:
- .local/
- _deps/
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
needs: ["image-win-x64-cross"]
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
gimp-win-x64-cross:
rules:
# On commits except tags.
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'
# On merge requests.
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_CROSSROAD_WIN64 != null'
stage: gimp
image: $CI_REGISTRY_IMAGE:build-win64-latest
dependencies:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- deps-win-x64-cross
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
- apt-cache
script:
- export PATH="`pwd`/.local/bin:$PATH"
- mkdir _build && cd _build
- echo 'crossroad meson setup ..
-Dgi-docgen=disabled && ninja && ninja install &&
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
' |
crossroad w64 gimp --run="-"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
needs: ["deps-win-x64-cross"]
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- _build/
- gimp-prefix/
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
packaging-win-x64-nightly:
rules:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# On commits except tags.
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_CROSSROAD_WIN64 != null'
stage: packaging
dependencies:
- gimp-win-x64-cross
variables:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
GIMP_PREFIX: "gimp-prefix"
GIMP_DISTRIB: "gimp-w64"
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
expire_in: 2 days
paths:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- gimp-w64
script:
- apt-get update
- apt-get install -y --no-install-recommends
python3 binutils-mingw-w64-x86-64 file
libglib2.0-bin
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +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}/share ${GIMP_DISTRIB}
# Package executables.
- mkdir ${GIMP_DISTRIB}/bin
- cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
# 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
# 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/
# Remove files for older GIMP
- rm -fr ${GIMP_DISTRIB}/lib/gimp/2.0/
# 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
# Package needed DLLs only
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
done
needs: ["gimp-win-x64-cross"]
## WINDOWS 32-bit CI (cross-build crossroad) ##
deps-win-x86-cross:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
stage: dependencies
image: $CI_REGISTRY_IMAGE:build-win32-latest
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
DEB_PYTHON_INSTALL_LAYOUT: "deb"
cache:
paths:
- .cache/crossroad/
- apt-cache
before_script:
- git clone --depth=${GIT_DEPTH} https://gitlab.freedesktop.org/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..
script:
- export PATH="`pwd`/.local/bin:$PATH"
- crossroad w32 gimp --run="build/windows/gitlab-ci/1_build-deps-crossroad.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 hours
paths:
- .local/
- _deps/
needs: ["image-win-x86-cross"]
gimp-win-x86-cross:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
stage: gimp
image: $CI_REGISTRY_IMAGE:build-win32-latest
dependencies:
- deps-win-x86-cross
variables:
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
cache:
paths:
- .cache/crossroad/
- apt-cache
script:
- export PATH="`pwd`/.local/bin:$PATH"
- mkdir _build && cd _build
- echo 'crossroad meson setup ..
-Dwmf=disabled -Dmng=disabled -Dgi_docgen=false && ninja && ninja install &&
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
' |
crossroad w32 gimp --run="-"
needs: ["deps-win-x86-cross"]
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- _build/
- gimp-prefix/
packaging-win-x86-nightly:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
stage: packaging
dependencies:
- gimp-win-x86-cross
- deps-win-x64-cross
variables:
GIMP_PREFIX: "gimp-prefix"
GIMP_DISTRIB: "gimp-w32"
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 days
paths:
- gimp-w32
script:
- apt-get update
- apt-get install -y --no-install-recommends
python3 binutils-mingw-w64-i686 file
libglib2.0-bin
# 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/
# 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
# 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/
# I fail to install wine32 inside the Gitlab runner. So instead, I
# just reuse the loaders.cache generated in the deps-win64 job as
# they should be the same (text format).
- 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
# 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
# Package needed DLLs only.
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
done
needs: ["gimp-win-x86-cross", "deps-win-x64-cross"]
## WINDOWS Aarch64 CI (native MSYS2) ##
deps-win-a64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN_AARCH64 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: dependencies
variables:
BUILD_TYPE: "CI_NATIVE"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
MSYSTEM: "CLANGARM64"
CHERE_INVOKING: "yes"
tags:
- windows-aarch64
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/1_build-deps-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 hours
paths:
- _install-a64
needs: []
gimp-win-a64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN_AARCH64 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: gimp
variables:
MSYSTEM: "CLANGARM64"
CHERE_INVOKING: "yes"
tags:
- windows-aarch64
script:
# Temporary patch until we use the latest LLVM.
- git apply ./build/windows/patches/0001-clang-rc-files-fix.patch
- git apply ./build/windows/patches/0004-clang-windres.patch
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- _install-a64
- _build-a64/build/windows/installer/
- _build-a64/meson-*/
cache:
paths:
- _ccache/
needs: ["deps-win-a64"]
packaging-win-a64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: packaging
variables:
MSYSTEM: "CLANGARM64"
CHERE_INVOKING: "yes"
tags:
- windows-aarch64
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_package-gimp-uni_base.sh"
- cd gimp-a64
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- gimp-a64
- done-dll.list
needs: ["gimp-win-a64"]
## WINDOWS x86_64 CI (native MSYS2) ##
deps-win-x64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN64 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: dependencies
variables:
BUILD_TYPE: "CI_NATIVE"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
MSYSTEM: "MINGW64"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/1_build-deps-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 hours
paths:
- _install-x64
needs: []
gimp-win-x64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN64 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: gimp
variables:
MSYSTEM: "MINGW64"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- _install-x64
- _build-x64/build/windows/installer/
- _build-x64/meson-*/
cache:
paths:
- _ccache/
needs: ["deps-win-x64"]
packaging-win-x64:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: packaging
variables:
MSYSTEM: "MINGW64"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_package-gimp-uni_base.sh"
- cd gimp-x64
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- gimp-x64
- done-dll.list
needs: ["gimp-win-x64"]
## WINDOWS x86 CI (native MSYS2) ##
deps-win-x86:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN32 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: dependencies
variables:
BUILD_TYPE: "CI_NATIVE"
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
MSYSTEM: "MINGW32"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/1_build-deps-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 hours
paths:
- _install-x86
needs: []
gimp-win-x86:
rules:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MSYS2_WIN32 != null'
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: gimp
variables:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
MSYSTEM: "MINGW32"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
- _install-x86
- _build-x86/meson-*/
cache:
paths:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- _ccache/
needs: ["deps-win-x86"]
packaging-win-x86:
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
stage: packaging
variables:
MSYSTEM: "MINGW32"
CHERE_INVOKING: "yes"
tags:
- win32-ps
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_package-gimp-uni_base.sh"
- cd gimp-x86
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh"
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 day
paths:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- gimp-x86
- done-dll.list
needs: ["gimp-win-x86"]
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
## Linux Flatpak weekly CI ##
## To learn more about the CI, go to https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/DevOps-with-Flatpak
flatpak:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
stage: gimp
tags:
- flatpak
needs: []
rules:
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_FLATPAK != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Flatpak package.*/'
variables:
GIT_SUBMODULE_STRATEGY: normal
# Replace with your manifest path
MANIFEST_PATH: "build/flatpak/org.gimp.GIMP-nightly.json"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
# Replace with your application name, as written in the manifest
FLATPAK_MODULE: "gimp"
APP_ID: "org.gimp.GIMP"
BUNDLE: "gimp-git.flatpak"
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
# Our script is too long for Gitlab and ends up with:
# > Job's log exceeded limit of 16777216 bytes.
# > Job execution will continue but no more output will be collected.
# To make debugging actually possible, let's save logs as a file.
- flatpak-builder --user --disable-rofiles-fuse flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
2>&1 | tee flatpak-builder.log
# Generate a Flatpak bundle
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH}
- tar cf repo.tar repo/
# XXX This job is mostly the same as .flatpak job of
# flatpak_ci_initiative.yml so far, except that I removed the
# automatic tests inside the Flatpak env at the end. The reason is
# that this part suddenly stopped working (even though the flatpak
# itself is functional) because the rebuild somehow was not
# rebuilding plug-ins. Yet one of the test (save-and-export)
# requires plug-ins to be built.
artifacts:
when: always
paths:
- flatpak-builder.log
# These are the same as flatpak_ci_initiative.yml as according to
# docs, key values are not merged but replaced.
- "${BUNDLE}"
- 'repo.tar'
- '.flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/meson-log.txt'
- '.flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/testlog.txt'
expire_in: 1 week
cache:
- key: "$CI_JOB_NAME"
paths:
- '.flatpak-builder/downloads'
- '.flatpak-builder/git'
- key: "$CI_JOB_NAME"
paths:
- '.flatpak-builder/cache'
- '.flatpak-builder/ccache'
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
clang-format:
only:
- merge_requests
stage: analysis
before_script:
- apt-get update
- apt-get install -y clang-format
git
allow_failure: true
script:
- .gitlab/run_style_check_diff.sh
artifacts:
paths: ['fetch_upstream.log', 'fetch_origin.log']
when: on_failure
expire_in: 1 week
needs: []
cppcheck:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CPPCHECK != null'
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:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
expire_in: 1 week
when: always
paths:
- report
needs: []
## Ready-to-distribute ##
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
flatpak-weekly:
extends: '.publish_nightly'
stage: distribution
rules:
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_FLATPAK != null'
needs: ["flatpak"]
dependencies:
- 'flatpak'
win-installer-weekly:
gitlab-ci, build: CI job to package GIMP on Windows from MSYS2 build. This new job resulted in a package which allows to run GIMP on Windows (as tested in a VM; at least it starts, I can create a new canvas and paint). Of course I think this will need to be tweaked a little bit more, as I'm sure we miss things here and there. At the very least, even though I add the Python and Luajit binaries, GIMP on Windows didn't find them. This will need to be investigated. Also it looks like opening from a remote location may not work. Not sure if this about a missing GIO module or maybe something which works differently on Windows (I was not even able to drag'n drop from the browser!). Anyway this needs to be looked at as well. Note that gdk-pixbuf-query-loaders is apparently unneeded when GIMP is built this way (unlike with our crossroad build). All this to say that this is still an early attempt to full CI build for Windows. It doesn't invalidate the crossroad build, because cross-compilation builds from Linux will always stay very important for Linux developers to be able to easily fix Windows bugs too; yet the crossroad build has 2 major issues: 1. We haven't figured out yet how to run GObject Introspection tools for cross-builds, so the crossroad builds are not full-featured (and this is quite a major feature we are missing!). 2. Also I will want to run the installer in the CI at some point and the one we use can only run on Windows itself AFAIK. We could try to run it through Wine, but still anyway the point 1. is already quite a blocker, let's do the simple thing. Note that we will likely want to move to meson for this build, because autotools is very slow on Windows. But as long as the few blocker meson bugs are not fixed, let's stick to the slow yet good build.
2021-05-07 00:40:37 +08:00
rules:
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_WIN_INSTALLER != null'
# Merge requests with appropriate label.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*5. Windows Installer.*/'
gitlab-ci, build: CI job to package GIMP on Windows from MSYS2 build. This new job resulted in a package which allows to run GIMP on Windows (as tested in a VM; at least it starts, I can create a new canvas and paint). Of course I think this will need to be tweaked a little bit more, as I'm sure we miss things here and there. At the very least, even though I add the Python and Luajit binaries, GIMP on Windows didn't find them. This will need to be investigated. Also it looks like opening from a remote location may not work. Not sure if this about a missing GIO module or maybe something which works differently on Windows (I was not even able to drag'n drop from the browser!). Anyway this needs to be looked at as well. Note that gdk-pixbuf-query-loaders is apparently unneeded when GIMP is built this way (unlike with our crossroad build). All this to say that this is still an early attempt to full CI build for Windows. It doesn't invalidate the crossroad build, because cross-compilation builds from Linux will always stay very important for Linux developers to be able to easily fix Windows bugs too; yet the crossroad build has 2 major issues: 1. We haven't figured out yet how to run GObject Introspection tools for cross-builds, so the crossroad builds are not full-featured (and this is quite a major feature we are missing!). 2. Also I will want to run the installer in the CI at some point and the one we use can only run on Windows itself AFAIK. We could try to run it through Wine, but still anyway the point 1. is already quite a blocker, let's do the simple thing. Note that we will likely want to move to meson for this build, because autotools is very slow on Windows. But as long as the few blocker meson bugs are not fixed, let's stick to the slow yet good build.
2021-05-07 00:40:37 +08:00
variables:
CHERE_INVOKING: "yes"
tags:
- win32-ps
stage: distribution
dependencies:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- packaging-win-a64
- packaging-win-x64
- packaging-win-x86
# This is needed for the BMP image generation for the installer.
# See commit e1203e9f76f.
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- gimp-debian-x64
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 1 week
paths:
- build/windows/installer/_Output
- installer.log
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/4_installer-gimp-msys2.sh > installer.log 2>&1"
needs: ["packaging-win-a64", "packaging-win-x64", "packaging-win-x86", "gimp-debian-x64"]
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
sources-debian:
rules:
# On commits.
- if: '$CI_PIPELINE_SOURCE == "push"'
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_SOURCES != null'
stage: distribution
dependencies:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- gimp-debian-x64
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 days
paths:
- gimp-*.tar.xz
- gimp-*.tar.xz.SHA256SUMS
- gimp-*.tar.xz.SHA512SUMS
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- mv _build-x64/meson-dist/gimp-*.tar.xz .
- FILENAME=`ls gimp-*.tar.xz` &&
sha256sum gimp-*.tar.xz > ${FILENAME}.SHA256SUMS &&
sha512sum gimp-*.tar.xz > ${FILENAME}.SHA512SUMS
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
needs: ["gimp-debian-x64"]
dev-docs:
rules:
# On commits.
- if: '$CI_PIPELINE_SOURCE == "push"'
# On releases.
- if: '$CI_COMMIT_TAG != null'
# Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_SOURCES != null'
stage: distribution
image: $CI_REGISTRY_IMAGE:build-debian-latest
dependencies:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- deps-debian-x64
- gimp-debian-x64
artifacts:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
when: always
expire_in: 2 days
paths:
- babl-api-docs-*.tar.xz
- babl-api-docs-*.tar.xz.SHA256SUMS
- babl-api-docs-*.tar.xz.SHA512SUMS
- gegl-api-docs-*.tar.xz
- gegl-api-docs-*.tar.xz.SHA256SUMS
- gegl-api-docs-*.tar.xz.SHA512SUMS
- gimp-api-docs-*.tar.xz
- gimp-api-docs-*.tar.xz.SHA256SUMS
- gimp-api-docs-*.tar.xz.SHA512SUMS
script:
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- BABL_VER=$(grep BABL_VERSION _babl/_build-x64/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
BABL_API_VER=$(grep BABL_API_VERSION _babl/_build-x64/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
DIR_NAME=babl-api-docs-$BABL_VER &&
mkdir $DIR_NAME &&
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
mv "${GIMP_PREFIX}/share/doc/babl-$BABL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- GEGL_MAJ_VER=$(grep GEGL_MAJOR_VERSION _gegl/_build-x64/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIN_VER=$(grep GEGL_MINOR_VERSION _gegl/_build-x64/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIC_VER=$(grep GEGL_MICRO_VERSION _gegl/_build-x64/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER.$GEGL_MIC_VER" &&
GEGL_API_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER" &&
DIR_NAME=gegl-api-docs-$GEGL_VER &&
mkdir $DIR_NAME &&
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
mv "${GIMP_PREFIX}/share/doc/gegl-$GEGL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
- GIMP_VER=$(grep GIMP_VERSION _build-x64/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
APP_VER=$(echo $GIMP_VER | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/') &&
DIR_NAME=gimp-api-docs-$GIMP_VER &&
mkdir $DIR_NAME &&
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
mv "${GIMP_PREFIX}/share/doc/gimp-$APP_VER" $DIR_NAME/reference &&
mv _build-x64/devel-docs/g-ir-docs $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
gitlab-ci, build/windows: Unify CI jobs wording Debian changes: - Since autotools has gone, we don't need to specify 'meson' in the debian job and others. - The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and the meson sintax of Debian jobs was also updated. Windows changes: - Then, clarify that the win64-nightly and win32-nightly jobs are, in fact, in the 'packaging' step, since we don't really "distribute" GIMP in .zip and the commands are almost the same of the packaging .SH script, without scripted optimizations for Inno Installer (or future .MSIX), crucial for distribution. - We don't need to specify "native" sufix in any build since they are the rule and cross builds are the exception. General changes: - The job names was changed to be more consistent and in accordance with the folders present in the artifacts. - The 'nightly' sufix was removed from the Inno Windows Installer job and others, since this doesn't reflect the real build frequency. - The scripts filenames are altered to stay "in order". This is not essential but ultra convenient since it is easy to view and search. (The -uni suffix is explained in a further commit) - All artifacts names now have the commit to avoid apparently duplicate files when downloading same step artifacts from different projects. - Finally, rearrange the order of jobs rationally: first the OSes and archs (from the most free and modern to the most closed and legacy), then the stages (from 'prepare' to 'analysis'), ending with the frequency of jobs (from the most frequent, called at each push, to the least/weekly). Overall, this changes, although difficult to review at the first sight, will avoid in the future quite "dumb" issues like: GNOME/gimp#10195
2023-12-08 04:12:44 +08:00
needs: ["deps-debian-x64", "gimp-debian-x64"]