| .. | ||
| cmake | ||
| ext_appimagetool | ||
| ext_boost | ||
| ext_brotli | ||
| ext_dlfcn_win32 | ||
| ext_drmingw | ||
| ext_eigen3 | ||
| ext_exiv2 | ||
| ext_expat | ||
| ext_extra_cmake_modules | ||
| ext_fcitx-qt | ||
| ext_ffmpeg | ||
| ext_fftw3 | ||
| ext_flac | ||
| ext_fontconfig | ||
| ext_freetype | ||
| ext_fribidi | ||
| ext_gettext | ||
| ext_giflib | ||
| ext_googleangle | ||
| ext_gperf | ||
| ext_gsl | ||
| ext_highway | ||
| ext_iconv | ||
| ext_icoutils | ||
| ext_icu | ||
| ext_imath | ||
| ext_immer | ||
| ext_jpeg | ||
| ext_jpegxl | ||
| ext_json_c | ||
| ext_karchive | ||
| ext_kcompletion | ||
| ext_kconfig | ||
| ext_kcoreaddons | ||
| ext_kcrash | ||
| ext_kdcraw | ||
| ext_kguiaddons | ||
| ext_ki18n | ||
| ext_kimageformats | ||
| ext_kitemmodels | ||
| ext_kitemviews | ||
| ext_kwidgetsaddons | ||
| ext_kwindowsystem | ||
| ext_lager | ||
| ext_lame | ||
| ext_lcms2 | ||
| ext_libaom | ||
| ext_libde265 | ||
| ext_libheif | ||
| ext_libintl-lite | ||
| ext_libogg | ||
| ext_libraw | ||
| ext_libtheora | ||
| ext_libunwindstack-ndk | ||
| ext_libvorbis | ||
| ext_libx265 | ||
| ext_libx265_10bit | ||
| ext_libx265_12bit | ||
| ext_linuxdeployqt | ||
| ext_lzma | ||
| ext_mlt | ||
| ext_mypaint | ||
| ext_nasm | ||
| ext_ocio | ||
| ext_openexr | ||
| ext_openh264 | ||
| ext_openjpeg | ||
| ext_openssl | ||
| ext_opus | ||
| ext_patch | ||
| ext_pkgconfig | ||
| ext_png | ||
| ext_poppler | ||
| ext_pyqt-builder | ||
| ext_pyqt5 | ||
| ext_pyqt5-sip | ||
| ext_python | ||
| ext_python-modules | ||
| ext_python-openvino | ||
| ext_qt | ||
| ext_quazip | ||
| ext_sdl2 | ||
| ext_seexpr | ||
| ext_sip | ||
| ext_strawberryperl | ||
| ext_tiff | ||
| ext_unibreak | ||
| ext_vpl | ||
| ext_vpx | ||
| ext_webp | ||
| ext_xsimd | ||
| ext_zlib | ||
| ext_zug | ||
| latest | ||
| pipelines | ||
| repo-metadata | ||
| tools | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| global-config.yml | ||
| how-to-update-compiler.md | ||
| how-to-work-with-package-aliases.md | ||
| notes-for-msys-users.md | ||
| notes-on-python-on-windows.md | ||
| policy-download-sources-blocklist.md | ||
| README.md | ||
| requirements-sip.txt | ||
| requirements-sip.txt.in | ||
| requirements.txt | ||
| requirements.txt.in | ||
Krita dependencies management repository
Links
- fork of ci-utilities repository: https://invent.kde.org/packaging/krita-ci-utilities
- ci-images repository: https://invent.kde.org/sysadmin/ci-images
- artifacts:
- Windows: https://invent.kde.org/teams/ci-artifacts/krita-windows
- Linux: https://invent.kde.org/teams/ci-artifacts/krita-appimage
- MacOS: https://invent.kde.org/teams/ci-artifacts/krita-macos
- Android-arm64-v8a: https://invent.kde.org/teams/ci-artifacts/krita-android-arm64-v8a
- Android-armeabi-v7a: https://invent.kde.org/teams/ci-artifacts/krita-android-armeabi-v7a
- Android-x86_64: https://invent.kde.org/teams/ci-artifacts/krita-android-x86_64
- Notary service repository: https://invent.kde.org/sysadmin/ci-notary-service
- Configs for the notary service: https://invent.kde.org/sysadmin/ci-utilities/-/tree/master/signing
CI job names structure
All publicly available CI jobs have names in the following format:
<target_packages>_<build_type>_<platform>
<target_packages> defines what packages are going to be built in this job. It may have the following values:
-
all--- the job builds all the packages available in the repository, including the debug and asan versions of the packages -
custom--- the job builds only the packages passed via the web gui. To pass the space-separated list of packages, click on the job and set up the following job input:- input:
KRITA_STAGE_DEP - value:
base/qt base/mlt(space-separated list)
- input:
-
dirty--- the job rebuilds a subtree of "dirty" packages. Basically, it rebuilds the passed packages and all their dependencies. The list is passed viaKRITA_STAGE_DEPinput like for "custom" packages.
<build_type> defines what happens with the package after the build is done. It may have the following values:
-
publish--- after the build the packages are published to the repository; publishing is allowed in protected branches only, so if you try to build multiple packages in a non-protected branch, the job will most probably fail -
local_cache--- after the build the packages are uploaded into the local cache. This method is suitable for non-protected branches and merge requests to test the changes in the build process -
shared--- this is the legacy method of building multiple backages in the same environment without uploading them into the package repository. Currently, it is available for debugging purposes only
<platform> selects the platform for which we build the package
How to update/rebuild a dependency
Testing the changes
-
Change the build recipes in
ext_foodirectory -
Create a branch/MR with the changes
-
Open the auto-generate pipeline for the branch/MR
-
Depending on the nature of your changes you may prefer to rebuild one specific package or a whole subtree of dependencies. To do that you need to open a corresponding job (open it by clicking on a name, not on the "play" button):
-
rebuild a single package: open
custom_local_cache_<platform> -
rebuild the sutree of deps: open
dirty_local_cache_<platform>
Note: you need to use "local_cache" type of job, since publishing is not available from non-protected branches.
-
-
On the job's page set the job input:
- input:
KRITA_STAGE_DEP - value:
base/foo base/bar(space-separated list)
- input:
-
After the environment variable is set, run the job to test if it builds fine.
Publishing the packages
The packages can be published only from master and transition.now/* branches. After your MR is merged into master, you need to run dirty_publish_<platform> jobs for all related platforms to get the package published. The process of setting up KRITA_STAGE_DEP is the same as in the testing builds.