mirror of
https://github.com/Crocmagnon/go-binary-size.git
synced 2024-12-21 13:41:51 +01:00
add readme
This commit is contained in:
parent
3be271a320
commit
141376130f
2 changed files with 15 additions and 4 deletions
11
README.md
Normal file
11
README.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# go-binary-size
|
||||
This repo is companion to an article published here (TODO add link).
|
||||
|
||||
Contents :
|
||||
* `app`: a Go module intended as an "application" (vs library) with 4 packages compilable as single binaries
|
||||
* `a`, `a2` and `b` depend exclusively on matching packages from `mod1`
|
||||
* `control` depends only on stdlib's `fmt` and is used as a control for what a small Go binary can weigh
|
||||
* `mod1`: a Go module intended to represent a library that `app` would include. It contains 3 packages:
|
||||
* `a`: depends on a large external dependency (`github.com/gin-gonic/gin`) in the "normal" files and also depends on some other external dependencies exclusively used in the test files, whether in the same package or in the `a_test` package.
|
||||
* `a2`: same as `a` but doesn't contain test files, to show that test dependencies don't bloat the built binary
|
||||
* `b`: depends only on `fmt`
|
|
@ -1,8 +1,8 @@
|
|||
.PHONY: build
|
||||
build:
|
||||
GOARCH=amd64 go build -o ./dist/a ./a
|
||||
GOARCH=amd64 go build -o ./dist/a2 ./a2
|
||||
GOARCH=amd64 go build -o ./dist/b ./b
|
||||
GOARCH=amd64 go build -o ./dist/control ./control
|
||||
GOARCH=amd64 GOOS=darwin go build -o ./dist/a ./a
|
||||
GOARCH=amd64 GOOS=darwin go build -o ./dist/a2 ./a2
|
||||
GOARCH=amd64 GOOS=darwin go build -o ./dist/b ./b
|
||||
GOARCH=amd64 GOOS=darwin go build -o ./dist/control ./control
|
||||
ls -al ./dist
|
||||
shasum -a 256 ./dist/*
|
||||
|
|
Loading…
Reference in a new issue