ci: Drop image checksums for commit SHAs

Image checksums were an idea to try and ensure the image we use in CI would be compatible with any changes present in the MR. Unfortunately it's a little fragile, and the addition of the dev scriptsuite (somehow) broke it. Rather than fix it, let's ditch it and do something better.

The commit removes the checksum check, instead assuming either that (a) the images from the target branch can be safely reused for the MR pipeline, or that (b) GitLab + user intelligence can detect when the images need to be rebuilt. This assumption means that we can drop the subtle image checksum in favor of simply a commit SHA placed in the image's tag. If said image doesn't exist (yet), the pipeline will fail very early (in autoreconf) and thus not waste too much time.

The SHA chosen when reusing is the merge-base between the source and target branches, as determined by GitLab. The images generated by this commit are the most similar to the images that would have been used if the source branch was rebuilt. This does however mean that if the target branch has updated some dependencies the MR will need to be updated (rebased) to catch the new changes. It doesn't happen often, likely won't be an issue in practice.

If neither that commit nor the tip of the target branch are available in SHA-form as pre-defined variables, we just build fresh images. It's getting faster and failing the pipeline mysteriously is worse.

Changes to the ./dev scriptsuite and a new validation job ensure that the reused image is indeed valid.

Backward Compatibility

  • This MR does not alter the data formats.
  • This MR does not alter any CLIs.

Additional Information

Checklist

  • I have run pre-commit run -a on my local checkout and fixed any reported issues.
  • I have confirmed that existing tests and/or the tests added by this MR cover the changes introduced by this MR.
  • I have confirmed that any added tests will be automatically run in CI.
  • I have updated all relevant documentation:

Merge request reports

Loading