Awesome-omni-skill github-workflows
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".
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/github-workflows" ~/.claude/skills/diegosouzapw-awesome-omni-skill-github-workflows && rm -rf "$T"
skills/tools/github-workflows/SKILL.mdGitHub 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 (
present)go.mod - Task runner (recommended): Taskfile.yml for build commands
- Install:
brew install go-task/tap/go-task - Docs: https://taskfile.dev
- Install:
- GoReleaser config (for releases):
in repository root.goreleaser.yml - GitHub Container Registry: Enabled for Docker image publishing
Workflow Architecture
| Workflow | Trigger | Purpose | Permissions |
|---|---|---|---|
| linter.yml | Every push | Code quality validation | |
| snapshot.yml | Every push | Test release process | |
| coverage.yml | Push to main | Generate coverage badge | |
| release.yml | Push tags | Production release | , |
Workflow files are located in
assets/workflows/ directory.
Quick Start
Step 1: Copy Workflow Files
# Create directories mkdir -p .github/workflows # Copy workflows from assets cp assets/workflows/*.yml .github/workflows/ # Copy configurations 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' # CUSTOMIZE: Use your Go version
Step 4: Customize Coverage Settings
In
.github/workflows/coverage.yml:
- name: Generate coverage badge with: limit-coverage: "70" # CUSTOMIZE: Set your coverage threshold
Step 5: Update Funding Configuration
Update
.github/FUNDING.yml:
github: [YOUR_GITHUB_USERNAME] # CUSTOMIZE
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:
,lintergoreleaser-snapshot
Secrets (if needed):
- Settings → Secrets → Actions
- Add
(if using Homebrew in GoReleaser)HOMEBREW_TAP_TOKEN
Step 7: Test Workflows
# 1. Push changes to trigger linter and snapshot git add .github/ git commit -m "ci: add GitHub Actions workflows" git push origin main # 2. Check workflow runs at: https://github.com/OWNER/REPO/actions # 3. Test release workflow (without publishing) git tag -a v0.1.0-test -m "Test release" git push origin v0.1.0-test # 4. If successful, create real release 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
directoryassets/workflows/
Resources
- GitHub Actions: https://docs.github.com/en/actions
- Task Runner: https://taskfile.dev
- golangci-lint: https://golangci-lint.run
- GoReleaser: https://goreleaser.com
- Dependabot: https://docs.github.com/en/code-security/dependabot