All Projects β†’ hgfischer β†’ Gomk

hgfischer / Gomk

Licence: other
An opinionated Makefile for Go projects.

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
Zeus
An Electrifying Build System
Stars: ✭ 176 (+83.33%)
Mutual labels:  makefile, make
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
Make Handbook
Handbook about modern make usage
Stars: ✭ 85 (-11.46%)
Mutual labels:  makefile, make
Teachingmaterial
Various teaching material
Stars: ✭ 159 (+65.63%)
Mutual labels:  makefile, make
Mach
A remake of make (in ClojureScript)
Stars: ✭ 240 (+150%)
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, using gox
  • gomkclean: clean the project directory of the files produced by go.mk
  • gomkupdate: update your go.mk file
  • vet: run go tool vet in each source file
  • lint: run golint in each source file
  • fmt: run go fmt in the entire project
  • test: run go test for all pkgs in the project
  • race: run go 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].