🧩 Module
Template for a typical module written on Go.
🛫 Quick start
Work with Makefile
$ make setup
$ make help
$ make find-todos
$ make test lint
$ TIMEOUT=5s make test-with-coverage
Work with Taskfile
$ alias run=./Taskfile
$ run help
$ run docs
$ run docs install build start
Work with Tools
$ make tools
$ source bin/activate
$ which goimports
$ make go-fmt # goimports -local $(go list -m) -w ./...
Work with Docker
$ make go-1.11 # or go-1.12, etc.
/src# make go-env 2>/dev/null | grep GOVERSION
# GOVERSION: 1.11.13
/src# make test
💡 Idea
Define a powerful template that quickly creates a new Go module.
Not only does it provide a starting point for new projects,
but it comes equipped with pre-configured ci/cd and inventory.
🏆 Motivation
At OctoLab, we want to start new projects faster using best practices
with a predefined structure and focusing on core ideas implementation
rather than wasting time on environment configuration and copying boilerplate code.
🤼 How to
Build your own module
- Generate a new repository from the template.
- Clone the repository locally.
- Update files:
docs/CNAME
, tools/pages/*
, tools/*.jsx?
,
go.mod
, and README.md
:
- 🛫 Quick start
- 💡 Idea
- 🏆 Motivation
- 🤼 How to
- 🛬 Integration
- Write your code and tests.
- 🚀
Contribute to the template
- Read the contribution guidelines.
- Fork the repository.
- Make your changes.
- Send a pull request.
- 🤗
Before you start, please make sure your changes are in demand.
The best for that is to create a new discussion,
or if you find an issue, report it first.
🎛️ Configuration
- GitHub Actions.
- GitHub Pages.
- Dependabot.
Included
- Nextra.
- Makefiles.
- Taskfiles.
- Go tools:
Optional
- Bitbucket.
- Codecov.
- Slack.
- Settings.
- GitHub Socialify.
- Go Report Card.
- Shields.io.
Coming soon
- CodeQL (code scanning).
- Graphite (git workflow).
- Qodana (code quality).
- SonarCloud (code quality).
- Vanity URL (canonical import path).
- Vercel (docs preview).
Miscellaneous
- Crontab.guru.
- Git History.
🛬 Integration
The project uses SemVer for versioning, and it is not
BC-safe through major releases.
Please use Go Modules to manage its version.
$ go get go.octolab.org@latest
🤲 Outputs & outcomes
OctoLab
Octomation
Others
made with ❤️ for everyone