Skip to content
/ tainted Public

Tool to determine which Go packages need to be rebuilt in a monorepo

License

Notifications You must be signed in to change notification settings

kynrai/tainted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tainted

A tool to compare which go packages will need be to rebuilt as a result of changes between two git diffs.

Ideally used as part of a CI/CD pipeline to see which servies should be rebuilt and redeployed

N.B. Name inspired by terraforms taint terminology

Project status

I do not have time to update or maintain this package but fortunatly Digital ocean have a much better and activly maintained tool here which does what atinted does and more,

https://github.com/digitalocean/gta

https://www.digitalocean.com/blog/gta-detecting-affected-dependent-go-packages/

Requirments

  • git MUST be installed and be on the path where tainted is run

Install

From Go

go get -u github.com/kynrai/tainted

From binaries

see releases for latest binaries

Usage

Basic usage

From the go project repo e.g. $GOPATH/src/github.com/user/repo/

go list ./... | tainted

It using the standard go repo layout (recommended)

go list ./cmd/... | tainted

You can manually set the git commit ranges, by default the previous commit is checked with HEAD. i.e. HEAD~1..HEAD

You can change any or all of the params

go list ./... | tainted -from=HEAD~2

go list ./... | tainted -from=HEAD~1 -to=HEAD~1