Hey folks! 👋
We're in the thick of migrating our main CI from Jenkins to GitHub Actions. The pipeline conversion itself has been smooth, but we're hitting a major snag: **artifact/data transfer between jobs feels painfully slow** compared to our old Jenkins setup. We're talking about build outputs, Docker layers, test reports β the usual suspects.
In Jenkins, with a dedicated agent and a shared workspace, moving multi-gigabyte build artifacts between stages was almost instant. In GitHub Actions, using `actions/upload-artifact` and `actions/download-artifact` across jobs, the same data set is adding 5-10 minutes of transfer time per pipeline run. It's eating into our feedback loops.
Has anyone else run into this? Hereβs a simplified snippet of our current flow:
```yaml
jobs:
build:
runs-on: ubuntu-latest
steps:
- # ... build steps producing ./output
- uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: ./output/
retention-days: 1
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: build-artifacts
- # ... run tests
```
Our migration plan was straightforward:
1. **Parallel Run**: Keep Jenkins active but mirror selected pipelines in Actions.
2. **Data Migration**: Only pipeline definitions and secrets. No historical build logs (we archived those separately).
3. **Cutover**: Flip teams over module-by-module.
The actual *transition* for each team took about a week, but this performance hiccup is making some folks question the move. Did you optimize artifact transfer? Switch to a different caching strategy? Or maybe accept this as a trade-off for managed CI?
Keep deploying!