This is internal documentation for deploying builds.sr.ht 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 compatibility.md in sr.ht-docs

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:

SELECT
  DISTINCT "user".email,
  job.created
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 compatibility.md 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 93f98ec8f78010de4f1ef9edc6b89c11afce9216
Author: Conrad Hoffmann <ch@bitfehler.net>
Date:   2024-09-24T17:03:25+02:00

ops: remove stale links to topology page
Clone this wiki
https://git.sr.ht/~sircmpwn/sr.ht-docs (read-only)
git@git.sr.ht:~sircmpwn/sr.ht-docs (read/write)