Migration Guide¶
Migrate from other CI systems to Go Gamma Actions.
From Manual GitHub Actions¶
Before¶
Multiple workflow files:
# .github/workflows/test.yml
name: Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v6
with:
go-version: '1.24'
- run: go test -race ./...
# .github/workflows/lint.yml
name: Lint
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v6
- uses: golangci/golangci-lint-action@v6
After¶
Single unified workflow:
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
ci:
uses: go-gamma/actions/.github/workflows/ci.yml@v1
with:
go-version: '1.24'
From Travis CI¶
Before (.travis.yml)¶
After¶
name: CI
on: [push, pull_request]
jobs:
ci:
uses: go-gamma/actions/.github/workflows/ci.yml@v1
with:
go-version: '1.24'
From CircleCI¶
Before (.circleci/config.yml)¶
version: 2.1
jobs:
build:
docker:
- image: cimg/go:1.24
steps:
- checkout
- run: go test ./...
- run: golangci-lint run
After¶
name: CI
on: [push, pull_request]
jobs:
ci:
uses: go-gamma/actions/.github/workflows/ci.yml@v1
with:
go-version: '1.24'
From GitLab CI¶
Before (.gitlab-ci.yml)¶
stages:
- test
- lint
test:
image: golang:1.24
script:
- go test -race ./...
lint:
image: golangci/golangci-lint
script:
- golangci-lint run
After¶
name: CI
on: [push, pull_request]
jobs:
ci:
uses: go-gamma/actions/.github/workflows/ci.yml@v1
with:
go-version: '1.24'
Migration Checklist¶
1. Create New Workflow¶
Create .github/workflows/ci.yml:
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
ci:
uses: go-gamma/actions/.github/workflows/ci.yml@v1
with:
go-version: '1.24'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
2. Configure Secrets¶
Move secrets to GitHub:
- Settings > Secrets and variables > Actions
- Add
CODECOV_TOKEN(if using coverage)
3. Test on Branch¶
- Create a test branch
- Push the new workflow
- Verify all checks pass
4. Remove Old Configuration¶
Once verified:
rm .travis.yml
rm -rf .circleci
rm .gitlab-ci.yml
git rm .github/workflows/test.yml
git rm .github/workflows/lint.yml
5. Update Documentation¶
Update README badges:
[](https://github.com/org/repo/actions)
Feature Comparison¶
| Feature | Manual | Gamma Actions |
|---|---|---|
| Test with race | Manual setup | ✅ Default |
| Coverage upload | Manual setup | ✅ Built-in |
| 50+ linters | Configure each | ✅ Pre-configured |
| Security scan | Separate action | ✅ Included |
| Cross-platform | Matrix config | ✅ One input |
| Releases | Custom workflow | ✅ Built-in |