lpci is a runner for continuous integration jobs in Launchpad. It is intended mainly for use in Launchpad builders, but can also be installed and used locally on branches with a .launchpad.yaml file.

This project owes a considerable amount to snapcraft and charmcraft: the provider support for container management is based substantially on charmcraft, while much of the CLI design is based on both those tools.

The development is in a very early stage.

Example configuration

$ cat .launchpad.yaml
- test

        series: focal
        architectures: amd64
        run: echo hello world >output
            paths: [output]

$ lpci run --output-directory out
Running the job
$ tree out  # Find out the location of the output file
└── test
    └── 0
        ├── files
           └── output
        └── properties

3 directories, 2 files
$ cat out/test/0/files/output
hello world