• Discuss and decide goals for this iteration.


  • This iteration is about doing builds in containers. See the design for more information.

Roadmap for this iteration

Current projects

  • None.

Tasks for this week

Tasks may be part of a project or be random small ones (max an hour) that just need doing.

what project Who estimate(h)
Implement "where: chroot" in actions Lars 1h
Add an archive action Lars 1h
Set up systree for a pipeline Lars 2h
Implement "where: container" Lars 2h
Make a relase Lars 1h
Upgrade production instance Lars 4h
Total Lars 11h

Task descriptions

  • Implement "where: chroot" in actions: Allow pipeline actions to specify that the shell or python code should be run in a chroot, using the workspace as the root directory.

    Acceptance criteria: Manually test a pipeline that runs debootstrap and then an ls command in a chroot in the workspace, and it outputs the right thing.

  • Add an archive action: Add to worker-manager a built-in action to archive the workspace into a tarball, and upload it to the blob service. Take the blob name from the systree_name parameter.

    Acceptance criteria: Manually test that a pipeline with the archive action uploads a blob with the given name, and that the blob looks like it has the right content.

  • Set up systree for a pipeline: Change worker-manager to download the blob named in the pipeline systree field, unpack that into /var/lib/ick/systree.

    Acceptance criteria: A manual test indicates this works.

  • Implement "where: container": Change worker-manager to allow a shell or python action to be run in a container, if there is a field where: container in the action. The systree should already be created in its directory. Bind mount the workspace directory. Run bash or python3 in the container.

    Acceptance criteria: A manual test indicates this works.

  • Make a relase: Make a relase of Ick. Build .deb packages.

    Acceptance criteria: Packages are available on

  • Upgrade production instance: Upgrade the Ick2 server that builds the website to the new release. Then change the projects and pipelines to use containers to build using containers.

    Acceptance criteria: A manual test indicates this works.