diff --git a/how-we-build/index.html b/how-we-build/index.html new file mode 100644 index 0000000..0157ca3 --- /dev/null +++ b/how-we-build/index.html @@ -0,0 +1,138 @@ + + + + + +How FosterStack Cache is built and signed + + + + + + + + +
+ +
Infrastructure worth keeping — and kept patched.
+
+
+

How FosterStack Cache is built and signed

+

Every release is built by an automated pipeline, checked, signed, and published with files you can verify yourself. This page says what that means today.

+ +

Releases are built only in CI

+

No release file is ever made on a person's laptop, ours included. A release starts when a signed tag is pushed, and there is no manual release path. That is what makes the signatures mean something: nobody can forge a release that GitHub's own build machines never built.

+ +

The steps a release goes through

+
    +
  1. Source check. The tag and the commit must be signed by an allowed signer, sit on the main branch, and have every required check green.
  2. +
  3. Build. The binaries are built, with checksums and a software bill of materials for each archive.
  4. +
  5. Container images. Each image is assembled once, from the unmodified distroless base plus one binary.
  6. +
  7. Reproducibility check. The image is assembled a second time on a separate machine. The results must be identical, or the release fails.
  8. +
  9. Scans and tests. Every scanner on our list runs against the exact images. A finding blocks the release unless a published VEX statement explains why it does not apply. The Gradle and Maven acceptance tests run against the same images.
  10. +
  11. Authorization. One step checks that every earlier step produced signed proof for these exact files. Anything missing stops the release.
  12. +
  13. Publish. The published images are the same digests that were scanned and tested, promoted without a rebuild, and checked again the way a customer would check them.
  14. +
+

The full description, as the pipeline actually runs, is in RELEASING.md.

+ +

What you get with each release

+ +

All of it is public. You do not need an account or a purchase to check any of it. The commands are under "Verifying a release" in RELEASING.md.

+ +

Kept patched

+

Every published image is scanned again every day, so a vulnerability disclosed against something we already shipped raises an issue without anyone having to remember to look.

+ +

What we do not claim

+ + +
+ FosterStack Cache on GitHub + FosterStack home +
+
+ + + diff --git a/sitemap.xml b/sitemap.xml index 8c1e470..de6df3f 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -16,4 +16,8 @@ weekly 1.0 + + https://fosterstack.com/how-we-build/ + 2026-10-08 +