Commit Graph

11 Commits

Author SHA1 Message Date
Joseph Ferguson afe8d2e598 Move amd64 and i386 builds to auto scaling groups 2025-09-12 16:58:49 -07:00
Joseph Ferguson a1154b8689 Move windows builds to auto scaling groups 2025-09-09 13:26:06 -07:00
Tianon Gravi e48b7063a1 Move `oci-import` (and SBOM) shell code out of `meta.jq` into an explicit shell script
Also, add a *lot* more validation.

This new script/code assumes we're setting `BASHBREW_META_SCRIPTS` to an appropriate value (pointing to the directory of this repository on-disk).
2025-04-25 16:27:26 -07:00
Tianon Gravi f75d36151b Add Windows (Server) 2025 support 2024-12-19 23:50:58 -08:00
Joseph Ferguson ccbc640c65 Add a test for generating the trigger queue 2024-11-20 14:45:38 -08:00
Joseph Ferguson f8916c4a2f Implement back off for jobs that are continually failing
Also track GHA triggers so they can also have back off when they have triggered many times (i.e. failed to push to staging)
2024-11-20 11:18:48 -08:00
Tianon Gravi 89d67c4e95 Switch from the `subset` branch back to `main`
When I created these branches ~a year ago, I had lofty goals that we'd be able to turn on "everything" quickly enough that the `subset` branch would be short-lived and that `main` could stay faithfully tracking the "everything is included" world, but the reality is much messier.

In an attempt to be extremely pragmatic about the reality, my intention is to delete the existing (now extremely outdated) `main` branch and simply rename `subset` to `main`.  It will then organically grow to include "everything" as we've been doing (and eventually we'll even ditch `subset.txt` 🤞).
2024-10-01 16:49:07 -07:00
Tianon Gravi 6361ac1e5a Make "tags" arch-specific again
This fixes edge case bugs where tags which share a sourceId but across disparate architectures will be grouped.

This can be seen concretely in https://oci.dag.dev/?image=infosiftr/moby:s390x@sha256:9a423230716c0f934e2fffa46585df1b2babc96ea0a1dd01bbd6ce29c6233aea (where `infosiftr/moby:s390x` should be _just_ the s390x build, but instead gets _all_ the architecture builds which share that same sourceId).
2024-05-02 14:18:33 -07:00
Joseph Ferguson 196a628cd9 Fix GHA trigger for Windows images 2024-03-07 15:57:54 -08:00
Tianon Gravi 64b5472227 Refactor data model to support more atomic index generation
This adjusts our data model to store/track data from the registry as an image index (with more data fidelity) instead of as a custom data structure.  One of the most notable benefits is that we can now track the annotation objects for each architecture, but even more importantly, this allows us to generate the indexes we need to push in deploy directly from data that's on-disk (where the old structure would require querying the registry).

Notably, however, this does *not* change deploy (yet) -- those changes are still in progress, but this was a large enough refactor/rewrite that I figured I should start here.

This also switches us from using containerd's registry client library to using [`cuelabs.dev/go/oci/ociregistry`](https://pkg.go.dev/cuelabs.dev/go/oci/ociregistry), which is much closer to the distribution-spec APIs (modeled/designed after them, in fact), where containerd's (and frankly most others) are a higher-level abstraction.  This is important because we're running into raw number of request rate limits, and almost every library for this always starts with a `HEAD` before pushing content, and this will allow us to go directly for a `PUT` (and then only do the "copy child objects" dance if the `PUT` fails).

This also drops our `allTags` data entry (which we only *ever* used the first value of, and then only to identify a `sourceId`/`buildId` in a human-meaningful way, because it's not useful/meaningful for any other use case), and moves `tags` from being arch-specific up to the per-source-object level because it's always identical across all arches for a given `sourceId` so it's silly to copy it N times for every architecture object.
2024-02-28 16:07:13 -08:00
Joseph Ferguson 8a4c026182 Retry each crane command on 429 after a sleep
move the crane commands generator to a jq file instead of embedded in the Jenkinsfile for easier debugging
2023-12-15 13:44:28 -08:00