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 ee367906b281b9de7e0628a2a4322b545b704df1
Author: Drew DeVault <sir@cmpwn.com>
Date:   2024-02-09T10:14:51+01:00

packages: drop unofficial repos
Clone this wiki
https://git.sr.ht/~sircmpwn/sr.ht-docs (read-only)
git@git.sr.ht:~sircmpwn/sr.ht-docs (read/write)