| name | github-workflows |
| description | Initialize or update GitHub Actions workflows for Go projects with comprehensive CI/CD pipelines including linting, testing, coverage, snapshot builds, and releases. Use when setting up GitHub Actions automation for Go projects. Trigger with "setup github actions", "add github workflows", or "configure ci/cd". |
| version | 1.0.0 |
| author | sylvain |
| license | MIT |
| allowed-tools | Read, Write, Bash(git:*) |
GitHub Workflows Setup Skill
Automate Go project CI/CD with production-ready GitHub Actions workflows for testing, linting, coverage reporting, and releases.
Overview
This skill provides a complete GitHub Actions CI/CD setup for Go projects:
- Linting: Automated code quality checks with golangci-lint
- Coverage: Test coverage reporting with badge generation
- Snapshot: Test release builds on every push
- Release: Automated releases with GoReleaser on tag push
- Dependabot: Automated dependency updates
- Funding: GitHub Sponsors configuration
All workflows integrate with Task for consistent build commands.
Prerequisites
- GitHub repository: Project hosted on GitHub
- Go module: Project uses Go modules (
go.mod present)
- Task runner (recommended): Taskfile.yml for build commands
- GoReleaser config (for releases):
.goreleaser.yml in repository root
- GitHub Container Registry: Enabled for Docker image publishing
Workflow Architecture
| Workflow | Trigger | Purpose | Permissions |
|---|
| linter.yml | Every push | Code quality validation | contents: read |
| snapshot.yml | Every push | Test release process | contents: read |
| coverage.yml | Push to main | Generate coverage badge | contents: write |
| release.yml | Push tags | Production release | contents: write, packages: write |
Workflow files are located in assets/workflows/ directory.
Quick Start
Step 1: Copy Workflow Files
mkdir -p .github/workflows
cp assets/workflows/*.yml .github/workflows/
cp assets/dependabot.yml .github/dependabot.yml
cp assets/FUNDING.yml .github/FUNDING.yml
Step 2: Configure Taskfile (Recommended)
Create or update Taskfile.yml:
version: '3'
tasks:
linter:
desc: Run golangci-lint
cmds:
- golangci-lint run ./...
test:
desc: Run tests
cmds:
- go test -v ./...
snapshot:
desc: Create snapshot build (test release)
cmds:
- goreleaser release --snapshot --clean --skip=publish
release:
desc: Create production release
cmds:
- goreleaser release --clean
Step 3: Customize Go Version
Update Go version in all workflows:
- uses: actions/setup-go@v6
with:
go-version: '1.24'
Step 4: Customize Coverage Settings
In .github/workflows/coverage.yml:
- name: Generate coverage badge
with:
limit-coverage: "70"
Step 5: Update Funding Configuration
Update .github/FUNDING.yml:
github: [YOUR_GITHUB_USERNAME]
Step 6: Configure GitHub Settings
Enable required GitHub features:
Actions Permissions:
- Settings → Actions → General
- Set "Workflow permissions" to "Read and write permissions"
GitHub Container Registry:
- Settings → Packages
- Enable "Inherit access from repository"
Branch Protection (optional):
- Settings → Branches → Add rule
- Require status checks:
linter, goreleaser-snapshot
Secrets (if needed):
- Settings → Secrets → Actions
- Add
HOMEBREW_TAP_TOKEN (if using Homebrew in GoReleaser)
Step 7: Test Workflows
git add .github/
git commit -m "ci: add GitHub Actions workflows"
git push origin main
git tag -a v0.1.0-test -m "Test release"
git push origin v0.1.0-test
git tag -a v1.0.0 -m "First release"
git push origin v1.0.0
Status Badges (Optional)
Add workflow badges to README.md:
[](https://github.com/OWNER/REPO/actions/workflows/linter.yml)
[](https://github.com/OWNER/REPO/actions/workflows/release.yml)

Expected Output
After using this skill, your repository will have:
- ✓ Complete CI/CD pipeline with 4 workflows
- ✓ Automated linting on every push
- ✓ Snapshot builds to validate releases
- ✓ Coverage badges showing test coverage
- ✓ Automated releases on Git tags
- ✓ Dependabot for dependency updates
- ✓ GitHub Sponsors configuration
- ✓ Production-ready workflow structure
Your project will have professional-grade CI/CD matching industry best practices.
Additional Documentation
- Detailed configurations and customization: See REFERENCE.md
- Troubleshooting common issues: See TROUBLESHOOTING.md
- Workflow templates: Available in
assets/workflows/ directory
Resources