[DX-4045] Loopinstall Caching - #23285
Conversation
|
✅ No conflicts with other open PRs targeting |
8e381c7 to
454e0a2
Compare
There was a problem hiding this comment.
Pull request overview
Risk Rating: MEDIUM — Changes are confined to CI/workflow + composite actions, but they can affect CI correctness and reliability across many runs (cache correctness, module resolution, and tool installation).
This PR aims to reduce CI time spent running loopinstall by introducing a two-tier caching strategy (cached plugin binaries + cached Go build cache), and also standardizes/caches Aptos (and tweaks Solana caching) via composite actions.
Changes:
- Replace
make install-pluginssteps in CI with a new composite action that restores/saves cached LOOP plugin binaries and (on miss) a scoped Go build cache. - Replace direct Aptos CLI installation with a composite action that caches the installed binary.
- Adjust Solana setup caching strategy (path/key), and refactor deployment workflow setup steps.
Scrupulous human review recommended for:
- Cache key correctness vs. what is actually installed/built in:
.github/actions/setup-solana/action.yml(newversioninput vs installer script behavior).github/actions/setup-loop-plugins/action.yml(plugin-fileinput vsmake install-plugins-publicbehavior)
- Module resolution in
.github/workflows/ci-deployments.yml(go mod downloaddirectory vs configureddeployment/go.*inputs)
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/ci-deployments.yml | Switches to composite actions for Aptos + LOOP plugins; adjusts module download and DB setup invocation. |
| .github/workflows/ci-core.yml | Switches Aptos + LOOP plugins setup to composite actions for reuse/caching. |
| .github/actions/setup-solana/action.yml | Updates Solana caching behavior and introduces a version input. |
| .github/actions/setup-loop-plugins/action.yml | New composite action implementing two-tier caching for LOOP plugin installation. |
| .github/actions/setup-aptos/action.yml | New composite action to install Aptos CLI with caching. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (3)
.github/actions/setup-loop-plugins/action.yml:44
- The cache key hash computation uses
shasum -a 256, which isn't reliably available on Linux runners by default. Ifshasumis missing, this step will fail and the whole composite action will break. Consider usingsha256sumwhen available (and optionally falling back toshasumfor portability).
MANIFEST_HASH=""
if [ -n "$FILES" ]; then
MANIFEST_HASH=$(cat $FILES 2>/dev/null | shasum -a 256 | awk '{print $1}')
fi
.github/actions/setup-loop-plugins/action.yml:109
make install-plugins-localusesgo install(seeGNUmakefile:109), which respectsGOBIN. This action currently setsGOBIN/GOCACHEfor the remote plugin installs but not for local plugins, so local plugin binaries won't land in the cached bin directory that this action adds toPATH(and won't benefit from the scopedGOCACHE). Setting the same env vars here makes behavior consistent and ensures the binaries are in the expected directory.
- name: Install local plugins
if: ${{ inputs.install-local == 'true' }}
shell: bash
run: make install-plugins-local
.github/workflows/ci-deployments.yml:161
- This step name says "vendor packages", but
go mod downloaddownloads module dependencies into the module cache (it doesn't populatevendor/). Renaming the step avoids confusion when debugging CI.
- name: Download Go vendor packages
working-directory: deployment
run: go mod download
|




Running
loopinstalltakes ~5 minutes in CI, and there's no proper caching for it. This PR adds it in two tiers.