feat(rds): publish prebuilt fakecloud-postgres images, pull-first runtime#803
Merged
vieiralucas merged 2 commits intomainfrom Apr 27, 2026
Merged
feat(rds): publish prebuilt fakecloud-postgres images, pull-first runtime#803vieiralucas merged 2 commits intomainfrom
vieiralucas merged 2 commits intomainfrom
Conversation
…time Move the postgres image build out of every user's first CreateDBInstance and into CI, where it runs once per release tag and lands on ghcr.io/faiscadev/fakecloud-postgres:<major>-<fakecloud-version> (linux/amd64 + linux/arm64). Each release also gets a rolling :<major> tag. - New workflow .github/workflows/docker-rds-images.yml triggers on v*/workflow_dispatch, mirroring docker.yml's per-arch build + manifest-merge pattern. workflow_dispatch lets us backfill the already-pushed v0.13.0 tag once this lands. - RdsRuntime::ensure_postgres_image is now pull-first: inspect -> pull -> local build (covers dev / unreleased / airgapped). Local-build path keeps the embedded Dockerfile + SQL. - New env knobs: FAKECLOUD_POSTGRES_REGISTRY (registry override) and FAKECLOUD_REBUILD_POSTGRES_IMAGE (force local rebuild after asset edits). - Drop the per-content-hash tag suffix and the sha2 dependency added in #802; tag is now just <major>-<fakecloud-version>, kept in sync with releases. - Unit test pins the tag formula across the default and override registry paths.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
1 issue found across 7 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/docker-rds-images.yml">
<violation number="1" location=".github/workflows/docker-rds-images.yml:29">
P1: The build matrix is misconfigured: `include` here does not create a pg-version × platform cross-product, so per-version arm64 images are not generated correctly.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
…rm cross-product `include` alone doesn't multiply axes; it adds entries to an existing expansion or matches keys. Promote `platform` to a top-level matrix axis so we get 4 (pg majors) × 2 (arches) = 8 build jobs, each with the right runner label resolved via include.
This was referenced Apr 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #802 (aws_lambda extension). Moves the custom postgres image build out of every user's first
CreateDBInstanceand into CI.Summary
.github/workflows/docker-rds-images.ymlpublishesghcr.io/faiscadev/fakecloud-postgres:<major>-<fakecloud-version>on each release tag (v*), matrix over postgres13/14/15/16, multi-arch (linux/amd64+linux/arm64). Mirrors the structure ofdocker.yml(per-archpush-by-digest+ manifest merge). Each release also gets a rolling:<major>tag.workflow_dispatchtrigger lets us backfill the existingv0.13.0tag once this lands; future releases auto-publish.RdsRuntime::ensure_postgres_imageis now pull-first:docker image inspectsucceeds (already on daemon) → use itdocker pullof the prebuilt tag → use itFAKECLOUD_POSTGRES_REGISTRY— registry prefix override (defaultghcr.io/faiscadev).FAKECLOUD_REBUILD_POSTGRES_IMAGE=1— skip inspect + pull and force a fresh local build (use after editing the embedded Dockerfile or SQL).sha2dep added in feat(rds): support PostgreSQL aws_lambda extension (#800) #802); tag is now<major>-<fakecloud-version>, version-coupled with releases.website/content/docs/services/rds.md(new "Prebuilt PostgreSQL image" section + engine-image table updated),website/content/local-rds.md, Dockerfile leading comment.Test plan
cargo build -p fakecloud-rdscargo test -p fakecloud-rds— 120/120 pass (incl. the newpostgres_image_tag_resolves_registry_overridestest)cargo clippy --workspace --all-targets -- -D warningscleancargo fmt --alldocker-rds-images.ymlviaworkflow_dispatchagainstv0.13.0to backfill; confirm 4 images land on ghcr.io.docker pull ghcr.io/faiscadev/fakecloud-postgres:16-0.13.0+aws rds create-db-instance --engine postgres ...shows "Pulling prebuilt fakecloud-postgres image" in logs (not "Building").Summary by cubic
Publishes prebuilt PostgreSQL images and makes the RDS runtime pull-first with a local-build fallback. This removes the first-run build cost and ties images to fakecloud release versions.
New Features
.github/workflows/docker-rds-images.ymlto publishghcr.io/faiscadev/fakecloud-postgres:<major>-<fakecloud-version>for Postgres 13–16 onlinux/amd64andlinux/arm64, plus rolling:<major>; supportsworkflow_dispatch.<major>-<fakecloud-version>.FAKECLOUD_POSTGRES_REGISTRY(registry override) andFAKECLOUD_REBUILD_POSTGRES_IMAGE=1(force local build).sha2dependency; docs updated and a unit test pins tag resolution (incl. trailing-slash override).Bug Fixes
pg_version × platform, building all 8 images (4 majors × 2 arches).Written for commit 9eaddd0. Summary will update on new commits. Review in cubic