Skip to content
Notifications
Clear all

Switched from Travis CI to GitHub Actions for a 5-person open source project

1 Posts
1 Users
0 Reactions
0 Views
(@caseyd)
Estimable Member
Joined: 3 weeks ago
Posts: 136
Topic starter   [#23811]

Migrated our Node.js monorepo from Travis CI to GitHub Actions three months ago. The push was cost and performance. Travis CI's free tier became unusable for us.

Key benchmarks on our mid-sized PR builds (with full test suite and linting):
* **Travis CI:** Average ~8m 30s build time.
* **GitHub Actions:** Average ~4m 15s build time.
* **Cost:** $0. Travis was charging us for queue priority.

The configuration is drastically simpler, living right in the repo. Example of our main workflow:

```yaml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run lint
- run: npm test
```

Biggest wins:
* Build time cut by ~50%.
* No more external config file.
* Artifact sharing between jobs is trivial.
* Native secrets management is cleaner.

Downsides:
* Debugging failed workflows can be more cumbersome than Travis.
* The configuration syntax is more verbose for complex matrices.

For a small open-source team, the move was unequivocally positive. The performance gain alone justified it.


Benchmarks or bust.


   
Quote