

Meaning the most specific cache is hit first, but with the broadest

In order to speed up builds, and to be able to pass intermediate artifacts between build jobs, the IfĬhanges are required, the cache keys will have to be modified for the build step, manually. Note These changes only relate to the build steps, not to setting up the build environment.

This isĭone whenever a change to modulesets or. The CircleCI caching mechanism needs to be alerted to save an update version of the cache. cache is not updated when changes to build occur Even though JHBuild detects the build change,.JHBuild cannot detect certain changes The full cache is broken by changing the first part of theĬache key whenever a change to the patch files ( patches directory).The results of the previous jobs (build steps) as well as previous builds. Additionally the cache is loaded to provide

Timeouts The build has been split into multiple jobs, each of which can take up to an hour.īefore each job the build environment is stood up.In order to fix the above problems, the following has been done: circleci/config.yml)Įxamples of things that JHBuild does detect: Changes to the build command (set out in.Changes to environment variables (such a CFLAGS) (are typically declared in.A new patch file being added or removed (they are stored in directory patches).This means that the build can become out of date and a full cache-break build will have to be undertaken.Įxamples of things that JHBuild does not detect: JHBuild not detecting changesīecause of JHBuild's architecture, certain changes to packages it is building, are not detected at build time. For this reason, support for Webkit has had to be dropped. If a step takes longer than an hour it simplyĬan't be build in Circle CI. Note Additionally, There is a hard limit on the length of a single build step. As soon as a job takes longer, it is canceled.ĭue to this, and the fact that the build as a whole takes much more than an hour, creative measures Circle CI Issues that have been worked around Build timelimitīuild jobs have a strict time limit of 1 hour. The Circle CI build and its interaction with JHBuild create some specific issues that a packager needs to be aware of. Upload a DMG to the CircleCI build artifacts.Notarize package using Apple altool utility.Create a DMG package using create-dmg tool and sign it.typelib library paths to make package relocatable pyc to avoid writes to the Application folder fix pixmap and imm cache files to remove absolute pathnames.Use install_name_tool to fix all library paths to make package relocatable.Launch build.sh which does (among other things):.Import signing certificate/key from the environment variables.This step could be avoided as it takes a lot of time, this is a soft dependency. Install all gtk-osx, gimp and WebKit dependencies using JHBuild.This will hopefully shift to official gtk-mac-bundler Install fork of the gtk-mac-bundler - the tool which helps to create macOS application bundles for the GTK apps.As part of the setup, it is running bootstrap-gtk-osx-gimp JHBuild command to compile required modules to run JHBuild. Set up JHBuild with a custom ~/.config/jhbuildrc-custom file (see ).This is needed to ensure that GIMP can run on macOS 10.12+. Install Python 3 (Rust is pre-installed) as they are required for the GIMP dependencies.In any case, the build process on Circle CI or the local version (see below) sets up most things from scratch. Another approach couldīe to create a separate user on your Mac. Some people were able to get working builds in the VirtualBox VM, others in a VMWare Fusion VM. The main reason for this: everything that Gimp needs must be packaged in the executable bundle or be part Try to remove or isolate them from the JHBuild environment as much as you can. If you have any other build system (brew, MacPorts) installed – the local build instructions provide some support (taking Homebrew off PATH. The GTK and GIMP build processes on macOS are very fragile. To get access to the Circle-CI build administration, packagers need toĪsk admin access to this Github repository. To build GIMP/macOS we are using this repo, which contains a fork of relevant partsįork adds modules related to GIMP and some gimp-specific patches to GTK.īecause CircleCI is not supporting gitlab there is a GitHub This repository contains files related to GIMP/macOS build using CircleCI and some tips thatĬould help with local development as well.
