Skip to content

Add manual workflow to publish the lexbox-test-repos seed image - #2562

Merged
hahn-kev merged 1 commit into
developfrom
ci/test-repos-image
Aug 14, 2026
Merged

hahn-kev merged 1 commit into
developfrom
ci/test-repos-image

Conversation

@hahn-kev-bot

@hahn-kev-bot hahn-kev-bot commented Aug 14, 2026 •

Copy link
Copy Markdown
Collaborator

simplify our data image which stores test projects by publishing it to the ghrc, related to #2563


🤖 AI summary

Adds a manual (workflow_dispatch) workflow that builds and publishes ghcr.io/sillsdev/lexbox-test-repos — a busybox image with the sena-3, elawa-dev-flex, and empty-dev-flex seed Mercurial repos baked into /init-repos (from the existing data/Dockerfile). It publishes :latest plus a dated tag.

Why: Today the populate-test-repos init container (deployment/init-repos) has no /init-repos volume mounted in CI/staging/develop, so it always falls through to downloading the seed zips from Google Drive at every hg pod start. That path is the root cause of intermittent integration-test failures — a failed or HTML (quota / virus-scan interstitial) download leaves the init container exiting 0 with the repos missing, hg then 404s, and the project page surfaces a masked "Unexpected Execution Error" that blocks the Playwright clicks.

This workflow moves the Google Drive dependency to a single, on-demand, verified step: it downloads each zip with retries and SHA-256 verification, so a bad download fails the workflow instead of shipping a broken image.

Sequencing: this is the first of two PRs. It only adds the workflow (nothing consumes the image yet), so it's safe to merge on its own. It must land on develop first so workflow_dispatch becomes available — a brand-new workflow can't be dispatched from a feature branch. The follow-up PR points every overlay at :latest.

After merge:

  1. Run the test-repos workflow once (Actions → Run workflow).
  2. Set the new lexbox-test-repos package to public (CI's kind cluster pulls seed images directly from ghcr, same as the other app images).

Test plan

  • Merge, then run the test-repos workflow manually and confirm ghcr.io/sillsdev/lexbox-test-repos:latest is published.
  • Set the package visibility to public.
  • Verified end-to-end by the follow-up consumer PR (dispatching the GHA integration tests against its branch).

New workflow_dispatch job builds ghcr.io/sillsdev/lexbox-test-repos from
data/Dockerfile (busybox + the sena-3, elawa, empty seed repo zips) and
pushes :latest plus a dated tag. It downloads the zips from Google Drive
once, with retries and SHA-256 verification, so a bad/HTML download fails
the workflow instead of shipping a broken image.

The hg populate-test-repos init container consumes this image; run this
workflow manually to refresh the seed data. Adding the workflow first so
it lives on the default branch and becomes dispatchable before anything
depends on the :latest tag.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@hahn-kev-bot, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 116 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3a46f67c-b302-43c1-a67e-87541521a08f

📥 Commits

Reviewing files that changed from the base of the PR and between 323dbba and 9ee9f80.

📒 Files selected for processing (1)
  • .github/workflows/build-test-repos.yaml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hahn-kev hahn-kev added the self-reviewed 👁️ I reviewed this myself and with AI and decided it was safe to merge without a second set of eyes label Aug 14, 2026
@hahn-kev
hahn-kev merged commit d338307 into develop Aug 14, 2026
2 checks passed
@hahn-kev
hahn-kev deleted the ci/test-repos-image branch August 14, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

self-reviewed 👁️ I reviewed this myself and with AI and decided it was safe to merge without a second set of eyes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants