Skip to content

bastionplatforms/gta

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

255 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gta

Overview

gta is an application which finds Go packages that have deviated from their upstream source in git. A typical situation is when a project is using a monorepo. At build or continuous integration time, you won't have to build every single package since you will know which packages (and dependencies) have changed.

GTA in Action

Installation

go install github.com/digitalocean/gta/cmd/gta

After installation, you will have a gta binary in $GOPATH/bin/

Usage

List packages that should be tested since they have deviated from master.

gta -include "$(go list -f '{{ .Module.Path }}')/"

List packages that have deviated from the most recent merge commit.

gta -include "$(go list -f '{{ .Module.Path }}')/"

What gta does

gta builds a list of "dirty" (changed) packages from master, using git. This is useful for determining which tests to run in larger monorepo style repositories.

gta works by implementing a various set of interfaces, namely the Differ and Packager interfaces.

Note: When using this tool, it is common to hit the maximum number of open file descriptors limit set by your OS. On macOS, this may be a measly 256. Consider raising that maximum to something reasonable with:

sudo ulimit -n 4096

License

This application is distributed under the Apache 2 license found in LICENSE

About

gta: do transitive analysis to find packages whose dependencies have changed

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 98.6%
  • Shell 1.4%