hgfischer / Gomk
Licence: other
An opinionated Makefile for Go projects.
Stars: β 96
Projects that are alternatives of or similar to Gomk
Targets
Function-oriented Make-like declarative workflows for R
Stars: β 293 (+205.21%)
Mutual labels: make, workflow
Mask
π A CLI task runner defined by a simple markdown file
Stars: β 495 (+415.63%)
Mutual labels: makefile, make
Task
A task runner / simpler Make alternative written in Go
Stars: β 4,282 (+4360.42%)
Mutual labels: makefile, make
Specification
Serverless Workflow Specification
Stars: β 166 (+72.92%)
Mutual labels: makefile, workflow
Drake Examples
Example workflows for the drake R package
Stars: β 57 (-40.62%)
Mutual labels: makefile, workflow
Checkmake
experimental linter/analyzer for Makefiles
Stars: β 420 (+337.5%)
Mutual labels: makefile, make
Reggae
Build system in D, Python, Ruby, Javascript or Lua
Stars: β 141 (+46.88%)
Mutual labels: makefile, make
Wordpress Starter
π¦ A starter template for WordPress websites
Stars: β 26 (-72.92%)
Mutual labels: makefile, make
Gitpr
Quick reference guide on fork and pull request workflow
Stars: β 902 (+839.58%)
Mutual labels: makefile, workflow
Intellij Makefile
Makefile support for IntelliJ-based IDEs
Stars: β 164 (+70.83%)
Mutual labels: makefile, make
Terraform Makefile
Helps me actually use terraform for multiple environments
Stars: β 143 (+48.96%)
Mutual labels: makefile, make
Ios Project Env Setup
Setup your iOS project environment with a Shellscript, Makefile or Rakefile
Stars: β 320 (+233.33%)
Mutual labels: makefile, make
Cookiecutter Lux Python
Cookiecutter template for an idiomatic Python project driven by Makefile
Stars: β 102 (+6.25%)
Mutual labels: makefile, make
Mmake
Mmake is a small program which wraps make to provide additional functionality, such as user-friendly help output, remote includes,
and eventually more. It otherwise acts as a pass-through to standard make.
Stars: β 1,593 (+1559.38%)
Mutual labels: makefile, make
Bake
Bake βΒ the strangely familiar workflow utility.
Stars: β 599 (+523.96%)
Mutual labels: makefile, make
Make Docker Command
Seamlessly execute commands (composer, bower, compass) in isolation using docker and make.
Stars: β 82 (-14.58%)
Mutual labels: makefile, make
GoMk
An opinionated Makefile for Go projects.
Use cases
- How would you implement a building workflow using Go alongside other technologies?
- Do you remember how to run the commands to check the test coverage of you Go project?
Usage
- Download
go.mk
to your project:
curl -O https://raw.githubusercontent.com/hgfischer/gomk/master/go.mk
-
include go.mk
in a new or existing Makefile; - Check
Makefile.sample
to see some examples on how to integrate with your own build workflow:
curl -O https://raw.githubusercontent.com/hgfischer/gomk/master/Makefile.sample
How it works
GoMk defines default variables and targets for a Go project, to help maintain a healthy project. It also checks your current Go environment.
Predefined variables
-
APPBIN
: name of the application, based on the repository name -
GOSOURCES
: all.go
files inside the project repository -
GOPKGS
: all Go pkgs inside the project repository
NOTE: Check the go.mk file for other predefined variables that may conflict with other variables defined in your Makefile.
Predefined targets
-
gomkbuild
: build the application binary, if there is one -
gomkxbuild
: build all cross-platform binaries, usinggox
-
gomkclean
: clean the project directory of the files produced by go.mk -
gomkupdate
: update your go.mk file -
vet
: rungo tool vet
in each source file -
lint
: rungolint
in each source file -
fmt
: rungo fmt
in the entire project -
test
: rungo test
for all pkgs in the project -
race
: rungo test
with race detection in all pkgs in the project -
deps
: install all deps needed by the project -
cover
: run tests with coverage report in all pkgs in the projects -
printvars
: print all variables defined in the Makefile
Godep support (optional)
-
savegodeps
: save all deps with godep -
restoregodeps
: restore all deps with godep -
updategodeps
: update all deps with godep
TODO
- Add targets for other tools
- Add support for
gb
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].