https://github.com/axone-protocol/template-go
🖨 Template for Golang projects @axone-protocol.
https://github.com/axone-protocol/template-go
Last synced: 4 months ago
JSON representation
🖨 Template for Golang projects @axone-protocol.
- Host: GitHub
- URL: https://github.com/axone-protocol/template-go
- Owner: axone-protocol
- License: bsd-3-clause
- Created: 2025-04-02T15:09:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-04T20:08:28.000Z (about 1 year ago)
- Last Synced: 2025-05-16T08:11:23.472Z (about 1 year ago)
- Language: Makefile
- Homepage:
- Size: 269 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - axone-protocol/template-go - 🖨 Template for Golang projects @axone-protocol. (Makefile)
README
# Golang Template
> Template for golang projects @axone-protocol.
[](https://github.com/axone-protocol/template-go/releases)
[](https://github.com/axone-protocol/template-go/actions/workflows/lint.yml)
[](https://github.com/axone-protocol/template-go/actions/workflows/build.yml)
[](https://github.com/axone-protocol/template-go/actions/workflows/test.yml)
[](https://codecov.io/gh/axone-protocol/template-go)
[](https://conventionalcommits.org)
[](https://github.com/semantic-release/semantic-release)
[](https://github.com/axone-protocol/.github/blob/main/CODE_OF_CONDUCT.md)
[](https://opensource.org/licenses/BSD-3-Clause)
## Purpose & Philosophy
This repository holds the template for building Golang projects with a consistent set of standards accros all [Axone](https://github.com/axone-protocol) projects. We are convinced that the quality of the code depends on clear and consistent coding conventions, with an automated enforcement (CI).
This way, the template promotes:
- the use of [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/), [semantic versioning](https://semver.org/) and [semantic releasing](https://github.com/cycjimmy/semantic-release-action) which automates the whole package release workflow including: determining the next version number, generating the release notes, and publishing the artifacts (project tarball, docker images, etc.)
- unit testing
- linting via [golangci-lint](https://github.com/golangci/golangci-lint)
- a uniformed way of building the project for several platforms via a Makefile using a docker image
## How to use
> 🚨 do not fork this repository as it is a [template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)
1. Click on [Use this template](https://github.com/axone-protocol/template-go/generate)
2. Give a name to your project
3. Wait until the first run of CI finishes
4. Clone your new project and happy coding!
## Prerequisites
- Be sure you have [Golang](https://go.dev/doc/install) installed.
- [Docker](https://docs.docker.com/engine/install/) as well if you want to use the Makefile.
## Build
```sh
make build
```