Skip to main content


Project description


Higgins is a continuous integration software implemented in Python and inspired by Jenkins.

It allows to track several repositories and to launch test with respect to dependencies between them.


After the installation with:

pip install higgins

the hn command should be available. The first step is to go the the directory where your sources are located and launch:

hn init

This will create ad .hn folder. You can then edit the .hn/config.yaml file to configure your installation. This file should look like this:

my_project:  # The name of your project
  path: relative/path/to/project
    repo_a: path/to/a  # Give a label for each repository path
    repo_b: path/to/b  # Those path are relative to project path
    repo_c: path/to/c

    true-test: /usr/bin/true
    false-test: /usr/bin/false

  triage:  # repo_a depends on repo_b ad repo_c
    - repo_b
    - repo_c

  build:  # Define which commands must be launch for each repo
    - true-test
    - false-test

Then you can launch:

hn trigger

This command check every repository for new changesets. And then:

hn build

Which will launch all needed test. To check the result you can start:

hn serve

and open http://localhost:5000 to see the results. To avoid to launch the build and trigger commands manually you can pass the --monitor flag to the serve command:

hn serve --monitor  # check all repos every 10 minutes

Other ways to define tests

You can associate a list of tests to the same label:

  - bin/sleep 10
  - bin/sleep 30
  - bin/sleep 40
  - bin/sleep 1
  - bin/sleep 3
  - bin/sleep 4

You can alos specify a test with a base command that will be called on a list of files:

    command: /usr/bin/wc -l
    path: "data/*.txt"
    exclude: "data/foo.*"

Where the path will be understood as relative to the repository folder. This definition will launch /usr/bin/wc -l on all files of the ‘data’ sub-direcotry that ends with ‘.txt’ and will exclude the ones starting with ‘foo.’ (the wildcards are expanded with the glob method)

Project inheritance

If you want to track several projects that shares a similar configuration, you can define inherits a project from another one with the extend key.

  repository: ...
  test: ...
  build: ...
  extend: project
  path: path/to/dev
  extend: project
  path: path/to/prod
  build: ...   # override the default build config

In the above example project will be used as a template for and Only the project with a path will be considered.

Override repositories synchronization

By default, higgins will update the repositories by calling hg pull -u inside each of them. The sync-all option allows to override this behaviour. Please note that this command is called once per project (at the root of the project) and not inside each repository.

  sync-all: my_custom_command


  • Run tests in parallel (across different projects)
  • Provide support for a sync-each method (that will be run inside each repository)
  • Support for git
  • Allows to choose a default banch (per repository ? per project ?)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Higgins-0.4.3.tar.gz (158.1 kB) Copy SHA256 hash SHA256 Source None
Higgins-0.4.3.win32.exe (354.7 kB) Copy SHA256 hash SHA256 Windows Installer any

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page