Go Service Library
This Open Source project contains a collection of common GO packages that forms the base structure of a service.
It also contains a project generator for new services.
- category Library
- license MIT
- link https://github.com/nexmoinc/gosrvlib
This project includes a Makefile that allows you to test and build the project in a Linux-compatible system with simple commands.
All the artifacts and reports produced using this Makefile are stored in the target folder.
All the packages listed in the resources/docker/Dockerfile file are required in order to build and test all the library options in the current environment. Alternatively, everything can be built inside a Docker container using the command "make dbuild".
To see all available options:
make help
To build the project inside a Docker container (requires Docker):
make dbuild
An arbitrary make target can be executed inside a Docker container by specifying the "MAKETARGET" parameter:
MAKETARGET='deps mod qa example' make dbuild
The list of make targets can be obtained by typing make
The base Docker building environment is defined in the following Dockerfile:
resources/docker/Dockerfile.dev
To download all dependencies:
make deps
To update the mod file:
make mod
To execute all the default test builds and generate reports in the current environment:
make qa
To format the code (please use this command before submitting any pull request):
make format
Before committing the code, please format it and check if it passes all tests using
DEVMODE=LOCAL make format clean mod deps generate qa example
Please check the examples
folder for an example of a service based on this library.
The following command generates a new project from the example using the data set in the project.cfg file:
make project CONFIG=project.cfg