golang-continuous-integration

Configures GitHub Actions CI/CD pipelines for Go projects covering testing, linting, security scanning, and releases.

1|Updated May 25, 2020
One-click install
npx skills add https://github.com/titaneric/dotfiles --skill golang-continuous-integration-titaneric
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golang-continuous-integration
Source: https://github.com/titaneric/dotfiles/tree/main/dot_agents/skills/golang-continuous-integration
Command: npx skills add https://github.com/titaneric/dotfiles --skill golang-continuous-integration-titaneric

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve? Setting up a production-grade CI/CD pipeline for a Go project requires coordinating many moving parts — test matrices, linting, SAST, vulnerability scanning, dependency updates, Docker builds, and release automation — and getting any of them wrong leads to flaky builds, security gaps, or broken releases. ## Core Features & Use Cases - Complete workflow templates: Ready-to-adapt GitHub Actions workflows for testing (with -race, -shuffle=on, coverage), integration tests with service containers, golangci-lint, and security scanning via govulncheck, gosec, CodeQL, and Bearer. - Dependency and release automation: Dependabot and Renovate configurations with grouping and auto-merge, plus GoReleaser setups tailored for CLI programs, libraries, and monorepos, and multi-platform Docker builds with SBOM and provenance attestations. - AI-driven code review: Claude Code Action and GitHub Copilot review configurations that apply Go-specific review skills across quality, correctness, security, and performance. - Use Case: You are bootstrapping CI for a new open-source Go library. Use this Skill to generate the test, lint, security, and release workflows, configure Dependabot with safe auto-merge, and apply least-privilege repository security settings. ## Quick Start Ask the agent to set up a complete GitHub Actions CI pipeline for your Go project, including tests, linting, security scanning, and a GoReleaser release workflow.

Frequently Asked Questions about golang-continuous-integration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up GitHub Actions CI for a Go project?

Create workflows for testing, linting, security, and release in that order. Run tests with go test -race -shuffle=on across a Go version matrix with fail-fast: false, add golangci-lint, govulncheck, and CodeQL, then automate releases with GoReleaser on version tags.

What security scanning tools should Go CI pipelines use?

Use govulncheck for vulnerabilities in actually-called code paths, gosec for Go-specific security issues, CodeQL with the security-and-quality query suite, and Bearer for sensitive data flow detection. Upload results as SARIF to the repository Security tab.

Renovate vs Dependabot for Go dependency updates?

Renovate offers native automerge, gomodTidy to run go mod tidy after updates, better grouping rules, and monorepo support. Dependabot is simpler and built into GitHub but needs a separate workflow for auto-merge and lacks automatic tidying.

Why do Go integration tests pass incorrectly in CI?

Go caches test results, so tests may pass without re-running against services like PostgreSQL or Redis. Use the -count=1 flag to disable caching, and define service containers with health checks in the workflow's services block.

Does GoReleaser work for Go libraries without binaries?

Yes, but libraries should use a minimal GoReleaser config with builds skipped and only changelog generation, since there are no binaries to cross-compile. For simple cases, creating a GitHub Release via gh release create is often sufficient.

Is it safe to auto-merge Dependabot pull requests?

Auto-merge requires elevated contents: write and pull-requests: write permissions, and the github.actor guard is not fully spoof-proof. Branch protection with required status checks and approvals is the real safety net, and major updates should be excluded from auto-merge.