feat(ci): reusable FastLED/fbuild/setup composite action (closes #101)#102
feat(ci): reusable FastLED/fbuild/setup composite action (closes #101)#102
Conversation
Adds .github/actions/setup/ so consumer CI pipelines can get
fbuild install + cache wiring in one step:
- uses: FastLED/fbuild/.github/actions/setup@main
with:
cache-key-extra: ${{ hashFiles('platformio.ini') }}
- run: fbuild build examples/Blink -e esp32dev
Composite-action steps:
1. actions/setup-python (pinnable via python-version input)
2. Resolve FBUILD_CACHE_DIR to $RUNNER_TEMP/fbuild-cache and export
via $GITHUB_ENV so every later step inherits it
3. pip install fbuild (pinnable via fbuild-version input)
4. actions/cache@v4 restore/save of the cache dir, keyed on
OS/arch + cache-version + cache-key-extra + restore-key fallback
Redirecting to $RUNNER_TEMP sidesteps the ~/.fbuild/*/daemon/ gotcha
from docs/CI_CACHING.md — the ephemeral daemon state never ends up
inside the cached tree in the first place.
Outputs `cache-hit` so consumers can assert warm-build behavior in
a smoke-test step.
docs/CI_CACHING.md TL;DR now recommends the action first, with the
raw actions/cache snippet preserved below for consumers who prefer
no action dependency.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 46 minutes and 47 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Summary
Ships a composite GitHub Action that lets consumer CI pipelines wire fbuild + cache in one step:
```yaml
with:
cache-key-extra: ${{ hashFiles('platformio.ini') }}
```
What it does
Redirecting to `$RUNNER_TEMP` sidesteps the `~/.fbuild/*/daemon/` gotcha from the cache doc — ephemeral daemon state never ends up inside the cached tree.
Outputs
Doc update
`docs/CI_CACHING.md` TL;DR now recommends the action first; the raw `actions/cache` snippet is preserved below for consumers who prefer zero action dependencies.
Follow-up
FastLED repo will switch its workflows to use this action in a companion PR (tracked in #101's "Follow-up" section).
Test plan