Skip to content

Conversation

@gaborbernat
Copy link
Member

@gaborbernat gaborbernat commented Jan 2, 2026

Summary

  • Parallelize plugin verification across 7 IDEs (runs in ~2-3 min instead of ~7.5 min)
  • Fix disk space issues that caused frequent CI failures
  • Optimize Gradle and IDE caching for faster builds

Changes

Parallelization

  • Split verification into 7 parallel matrix jobs (PC, PY, IC, IU, GO, CL, RR)
  • Add verifyIde Gradle property to build.gradle.kts for single-IDE verification
  • Each job downloads only 1 IDE (~1.5GB) instead of all 7 (~10-15GB)

Disk Space Optimization

  • Use targeted cleanup (android: true, dotnet: true) instead of slow large-packages (~30s vs ~150s)
  • Remove unnecessary free-disk-space from test and releaseDraft jobs
  • Fix pluginVerifierHomeDir typo (removed trailing "qq")

Caching Improvements

  • Fix IDE cache path: $HOME/.pluginVerifier instead of ~/.pluginVerifier (tilde doesn't expand in actions/cache)
  • Use platformVersion in cache key instead of file hash (cache persists across unrelated changes)
  • Add cache-read-only: true to verify/test jobs (build job warms cache, others just read)

Expected Impact

Metric Before After
Verify wall-clock time ~7.5 min ~2-3 min
Disk cleanup time ~150s ~30s
Cache hit rate Low (hash-based) High (version-based)

Test plan

  • CI build passes
  • All 7 verify matrix jobs complete successfully
  • IDE cache is restored on subsequent runs

The plugin verification step downloads 7 JetBrains IDEs (~10-15GB total)
for compatibility testing. With `large-packages: false`, the GitHub
runner doesn't free enough disk space, causing "No space left on device"
errors.

Changes:
- Enable `large-packages: true` in the verify job's free-disk-space step
  to remove additional unused packages and free more disk space
- Fix typo in pluginVerifierHomeDir output (remove trailing "qq")
@gaborbernat gaborbernat force-pushed the fix/verify-plugin-disk-space branch from 460dd65 to a1c2dfe Compare January 2, 2026 23:33
- Remove unnecessary free-disk-space from test and releaseDraft jobs
  (saves ~3 min per job - they don't need extra disk space)
- Enable more cleanup options for verify job (android, dotnet, haskell,
  docker-images) to free ~20GB more space for IDE downloads
- Fix verifier cache key: use gradle.properties and build.gradle.kts
  instead of non-existent build/listProductsReleases.txt
- Add matrix strategy to run verification for each IDE in parallel
  (PC, PY, IC, IU, GO, CL, RR) - reduces wall-clock time from ~7.5 min to ~2-3 min
- Add verifyIde Gradle property to build.gradle.kts to select single IDE
- Update cache key to be IDE-specific for better cache hits
- Update artifact names to include IDE type
@gaborbernat gaborbernat force-pushed the fix/verify-plugin-disk-space branch from 5cd6a68 to bc45f3d Compare January 3, 2026 00:53
- Fix ktlint formatting in build.gradle.kts (multiline expression)
- Restore free-disk-space step for verify jobs (Gradle cache needs space)
@gaborbernat gaborbernat force-pushed the fix/verify-plugin-disk-space branch from bc45f3d to 5ec7e9d Compare January 3, 2026 00:54
@gaborbernat gaborbernat changed the title Fix verify plugin step running out of disk space Optimize GitHub Actions: parallelize verification and fix disk space Jan 3, 2026
@gaborbernat gaborbernat merged commit 73fcddb into tox-dev:main Jan 3, 2026
11 checks passed
@gaborbernat gaborbernat deleted the fix/verify-plugin-disk-space branch January 3, 2026 01:03
gaborbernat added a commit to gaborbernat/PyVenvManage that referenced this pull request Jan 4, 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.

1 participant