Other references
Follow below steps after creating a new repository from this template
-
Initialize Go module:
go mod init github.com/YOUR_USERNAME/YOUR_PROJECT_NAME go mod tidy
-
Update app name in:
- Taskfile.yml -
APP_NAMEvariable - Dockerfile - Binary name and labels
- main.go -
appNameconstant - .goreleaser.yml -
project_nameandbinaryname - README.md - Title and description
- Taskfile.yml -
-
Update main file location (if not using root
main.go):- Taskfile.yml -
MAIN_FILEvariable - .goreleaser.yml -
mainfield underbuilds
- Taskfile.yml -
-
Configure Homebrew release (optional):
Note: GitHub's default
GITHUB_TOKENhas limited permissions for tap repositories. See GoReleaser docs.- Add
RELEASE_TOKENin repository secrets and update in release workflow - Update release workflow to use the new token
- Update .goreleaser.yml
brewssection with your tap repository details
- Add
-
Clean up: Delete this checklist and update README with project documentation
- Using Taskfile
Install Taskfile: Installation Guide
# Available tasks
task --list
task: Available tasks for this project:
* all: Run comprehensive checks: format, lint, security and test
* build: Build the application binary for the current platform
* build-docker: Build Docker image
* build-platforms: Build the application binaries for multiple platforms and architectures
* fmt: Formats all Go source files
* install: Install required tools and dependencies
* lint: Run static analysis and code linting using golangci-lint
* run: Runs the main application
* security: Run security vulnerability scan
* test: Runs all tests in the project (aliases: tests)
* vet: Examines Go source code and reports suspicious constructs- Build with goreleaser
Install GoReleaser: Installation Guide
# Build locally
goreleaser release --snapshot --clean
...