Skip to content

Use AppBuilders Version in key for project_data cache#917

Merged
chrisvire merged 1 commit into
mainfrom
fix/sync-appbuilder-version
Dec 3, 2025
Merged

Use AppBuilders Version in key for project_data cache#917
chrisvire merged 1 commit into
mainfrom
fix/sync-appbuilder-version

Conversation

@FyreByrd
Copy link
Copy Markdown
Collaborator

@FyreByrd FyreByrd commented Dec 2, 2025

Tests were broken when app-builders added some new features. This does not fix those tests. This allows broken tests to be caught earlier by making sure that the latest version of app-builders is used to extract the project data for testing. Some of this was delayed by the fact that we were caching the extracted data to save time during the testing process. Using the version number as part of the cache key bypasses this issue.

Summary by CodeRabbit

  • Chores
    • Updated CI/CD workflow to include version detection and caching optimization for improved build consistency and reliability.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 2, 2025

Walkthrough

The workflow adds a Get AppBuilder Version step to the setup job that fetches the latest app-builders version from GHCR and outputs it as appbuilder_version. This version is then propagated into cache keys across multiple jobs (lint, test, etc.) to ensure cache consistency based on the builder version.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Configuration
\.github/workflows/main\.yml
Adds new step Get AppBuilder Version that queries GHCR for latest app-builders tag and outputs version. Exposes appbuilder_version output from setup job. Propagates this version into cache keys across setup, lint, test, and other jobs to gate caching on builder version consistency.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify GHCR token fetching mechanism is secure and properly scoped
  • Ensure cache key updates are consistent across all affected jobs and steps
  • Confirm version output propagation paths are correct in all needs.setup.outputs.appbuilder_version and steps.get_version.outputs.appbuilder_version references

Suggested reviewers

  • chrisvire

Poem

🐰 A version fetched from clouds on high,
Cache keys dance through workflow's sky,
AppBuilders tagged with latest cheer,
Consistency blooms throughout the year! 🏗️

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title accurately summarizes the main change: incorporating AppBuilders version into cache key strategy for the project_data cache.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/sync-appbuilder-version

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 and usage tips.

@FyreByrd FyreByrd force-pushed the fix/sync-appbuilder-version branch from 68f26e4 to 859e352 Compare December 2, 2025 23:13
@FyreByrd FyreByrd requested a review from chrisvire December 2, 2025 23:16
@FyreByrd FyreByrd marked this pull request as ready for review December 2, 2025 23:16
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
.github/workflows/main.yml (1)

10-11: Clarify job dependencies and gating behavior.

The check-appbuilders-version job does not explicitly depend on other jobs, so it runs in parallel with setup, lint, and test. Confirm whether:

  • This version check should gate all downstream jobs (making setup, lint, and test depend on it), or
  • It's intended as an informational check that runs independently.

If it should gate the workflow, add a needs constraint:

-    check-appbuilders-version:
-        runs-on: ubuntu-latest
+    check-appbuilders-version:
+        runs-on: ubuntu-latest
+        # Consider adding explicit gate if this should block downstream jobs
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 40a6310 and 59ef743.

📒 Files selected for processing (2)
  • .github/workflows/main.yml (1 hunks)
  • package.json (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-06-16T18:49:02.188Z
Learnt from: judah-sotomayor
Repo: sillsdev/appbuilder-pwa PR: 840
File: src/lib/components/NoteDialog.svelte:94-95
Timestamp: 2025-06-16T18:49:02.188Z
Learning: The appbuilder-pwa project uses Svelte 5, as evidenced by "svelte": "^5" in package.json and the use of Svelte 5 runes syntax like $props() and $derived(). In Svelte 5, onclick is the preferred event handler syntax over on:click.

Applied to files:

  • package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test
🔇 Additional comments (1)
package.json (1)

3-3: Verify that version jump from 0.0.1 to 13.3 doesn't break downstream tooling.

The version was updated to match app-builders' GHCR tag, but this represents a significant semantic version jump (0.0.1 → 13.3). Confirm that deployment scripts, release pipelines, or any downstream consumers that expect gradual version progression can handle this change.

Comment thread .github/workflows/main.yml Outdated
Comment thread .github/workflows/main.yml Outdated
@FyreByrd FyreByrd marked this pull request as draft December 3, 2025 14:56
Try container id?

Try tags API?

Full check?

Move check to main.yml

Put latest version of PWA in package.json

Apparently I needed to format the yml....

Include appbuilder version in project cache key

Fix cache key

Revert "Put latest version of PWA in package.json"
@FyreByrd FyreByrd force-pushed the fix/sync-appbuilder-version branch from ae43916 to 85c3dc1 Compare December 3, 2025 15:28
@FyreByrd FyreByrd marked this pull request as ready for review December 3, 2025 15:36
@FyreByrd FyreByrd changed the title Fix workflow for upstream AppBuilders changes Use AppBuilders Version in key for project_data cache Dec 3, 2025
Copy link
Copy Markdown
Member

@chrisvire chrisvire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any caching of project generation should be based on the appbuilder_verison

@chrisvire chrisvire merged commit 979c06e into main Dec 3, 2025
4 checks passed
@chrisvire chrisvire deleted the fix/sync-appbuilder-version branch December 3, 2025 18:29
@coderabbitai coderabbitai Bot mentioned this pull request Feb 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants