This is internal documentation for deploying updates to the SourceHut hosted services.

Updating images

When a patch for an image comes in, ensure that it meets all of the criteria set out in image maintenance before applying. Every step is essential to ensure that there is no downtime for any image while upgrading -- review the patch carefully.

The deployment process for new images is the following:

  1. Apply and push the changes to the upstream repository
  2. Manually submit builds to build and deploy the new images
  3. Tag a new release and push it to the Alpine repos
  4. Log into the build workers and run apk upgrade -U. At this point the new image scripts are available and builds can be run against the new images.
  5. Run sanity test builds against the new images to verify them
  6. Apply patches for in

When deprecating images, identify users who have submitted builds using the affected image in the past 90 days with a SQL query similar to the following:

  DISTINCT "user".email,
FROM job
JOIN "user" ON "user".id = job.owner_id
WHERE image = 'ubuntu/kinetic' AND job.created >= '2023-06-01'
ORDER BY job.created DESC;

Send an email to each affected user with two weeks notice before deploying an image deprecation. The matrix should be updated right away to remove the affected image, to avoid new users appearing during the notice period.

crontab & submit_image_build

These are not updated automatically during deployments, when changed you need to deploy them manually. submit_image_build is stored in /usr/local/bin and the crontab runs on sircmpwn's account.

About this wiki

commit 48012c22fb5241abb7736a2f9627b50234fa6510
Author: Taavi Väänänen <>
Date:   2024-05-31T15:35:19+02:00 Update my email address
Clone this wiki (read-only) (read/write)