ci: extract shared setup prelude into composite action#518
ci: extract shared setup prelude into composite action#518staging-devin-ai-integration[bot] wants to merge 2 commits into
Conversation
Move the duplicated setup steps (free-disk, checkout, bun, UI build, apt, rust toolchain, sccache, rust-cache) from 5 jobs into .github/actions/setup-skit/action.yml. Closes #436 Signed-off-by: streamkit-devin <devin@streamkit.dev>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Local composite actions require the repo to be checked out first so GitHub can locate the action.yml file. Signed-off-by: streamkit-devin <devin@streamkit.dev>
| docker-images: true | ||
| swap-storage: false | ||
|
|
||
| - uses: actions/checkout@v5 |
There was a problem hiding this comment.
🔴 Local composite action is used before the repository is checked out
Each Skit job now starts with uses: ./.github/actions/setup-skit, but local actions are resolved from the runner workspace, which is empty until actions/checkout has already run. The checkout step was moved inside the local composite action (.github/actions/setup-skit/action.yml:44), so the runner cannot load that action in the first place and the lint/test/coverage/GPU/build jobs fail before any setup executes. The same first-step pattern appears at .github/workflows/skit.yml:50, .github/workflows/skit.yml:83, .github/workflows/skit.yml:131, and .github/workflows/skit.yml:167.
Prompt for agents
Fix the Skit reusable workflow so the repository is checked out before any local action is referenced. The new .github/actions/setup-skit composite action includes actions/checkout internally, but that cannot bootstrap loading the local action itself. Add an actions/checkout step before every uses: ./.github/actions/setup-skit invocation in .github/workflows/skit.yml, or replace the local action with a non-local reusable mechanism that does not require workspace files to already exist. If adding separate checkout steps, also consider removing the checkout step from .github/actions/setup-skit/action.yml to avoid checking out twice.
Was this helpful? React with 👍 or 👎 to provide feedback.
Debug
There was a problem hiding this comment.
Already fixed in a35db2b — actions/checkout@v5 now runs before the composite action in every job, and the checkout step was removed from the composite action.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #518 +/- ##
==========================================
- Coverage 79.39% 79.38% -0.02%
==========================================
Files 232 232
Lines 66904 66904
Branches 1909 1909
==========================================
- Hits 53117 53110 -7
- Misses 13781 13788 +7
Partials 6 6
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Summary
skit.ymljobs into.github/actions/setup-skit/action.yml.rust-cache-key,rust-cache-workspaces,rust-components,skip-ui-build,runs-on-self-hosted.uses: ./.github/actions/setup-skitstep plus its job-specific commands and (where applicable) sccache save.Closes #436
Review & Validation
rust-components: rustfmt, clippy), coverage (rust-cache-workspaces,rust-components: llvm-tools-preview), test-gpu (skip-ui-build,runs-on-self-hosted).sccache-{rust-cache-key}-{os}-{hash}).Notes
skip-ui-buildis not set for lint becausecargo clippy --workspacecompilesskit, which embeds UI assets viaRustEmbed. The issue suggested lint could skip UI build, but that would break clippy.large-packages: true,swap-storage: true); the composite uses the standard settings. If coverage hits disk-space issues, afree-disk-aggressiveinput can be added.skit); they now use per-job keys (skit-lint,skit-test,skit-build) to match the per-job sccache keys. First CI run after merge will have a one-time rust-cache miss.Link to Devin session: https://staging.itsdev.in/sessions/90a735612c22449896cd1934b5d5d56e
Requested by: @streamer45
Devin Review
6fa477b