The GitHub Actions job "Sync Files" on fory.git/main has failed.
Run started by GitHub user chaokunyang (triggered by chaokunyang).

Head commit for run:
91fa14d0c2f4cfacae8aa5c976414e99bbfec2c9 / Sanyam Suyal 
<[email protected]>
feat(ci): cache Bazel binary in Python CI workflow (#2745)

### Problem
Fixes #2742

Python CI downloads Bazel binary on every run, which:
- Takes 2-5 seconds per run
- Can fail due to transient network errors
- Wastes bandwidth and CI resources

### Solution
Implemented GitHub Actions caching for Bazel binary to avoid repeated
downloads.

### Changes
- `.github/workflows/ci.yml`: Added actions/cache@v4 step to cache Bazel
binary
  - Caches ~/bin/bazel and ~/.local/bin/bazel
  - Cache key includes OS, architecture, and Bazel version hash
  - Invalidates cache when Bazel version changes
  
- `ci/tasks/common.py`: Updated install_bazel() function
  - Checks if cached Bazel binary exists before downloading
  - Verifies cached binary works by running bazel --version
  - Automatically re-downloads if cached binary is corrupted
  - Skips download entirely when cache is valid

### Testing
Tested all scenarios:
- Fresh install (no cache) - downloads successfully
- Cache hit (valid binary) - skips download, saves time
- Corrupted cache - detects corruption and recovers automatically
- All Python syntax and YAML validation passed

### Benefits
- Faster builds: Saves 2-5 seconds per CI run when cache hits
- More reliable: Reduces dependency on network availability
- Cost savings: Less bandwidth usage and shorter CI runtime

### Related
Follow-up to #2733 (retry logic for Bazel downloads)

Fixes #2742

Report URL: https://github.com/apache/fory/actions/runs/18445609900

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to