This commit is contained in:
parent
ccfdd1ff63
commit
0ce482eb9c
1 changed files with 77 additions and 0 deletions
77
README.md
77
README.md
|
@ -55,3 +55,80 @@ git clone https://github.com/EmileVauge/traefik
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
You can find the complete documentation [here](docs/index.md).
|
You can find the complete documentation [here](docs/index.md).
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
You need either [Docker](https://github.com/docker/docker) and
|
||||||
|
``make``, or `go` and `godep` in order to build traefik.
|
||||||
|
|
||||||
|
### Using Docker and Makefile
|
||||||
|
|
||||||
|
You need to run the ``binary`` target. This will create binaries for
|
||||||
|
linux and darwin platforms in the `dist` folder.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ make binary
|
||||||
|
docker build -t "traefik-dev:your-feature-branch" -f build.Dockerfile .
|
||||||
|
# […]
|
||||||
|
docker run --rm -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -v "/home/vincent/src/github/vdemeester/traefik/dist:/go/src/github.com/emilevauge/traefik/dist" "traefik-dev:your-feature-branch" ./script/make.sh generate binary
|
||||||
|
---> Making bundle: generate (in .)
|
||||||
|
removed 'gen.go'
|
||||||
|
|
||||||
|
---> Making bundle: binary (in .)
|
||||||
|
Number of parallel builds: 8
|
||||||
|
|
||||||
|
--> linux/arm: github.com/emilevauge/traefik
|
||||||
|
--> darwin/amd64: github.com/emilevauge/traefik
|
||||||
|
--> darwin/386: github.com/emilevauge/traefik
|
||||||
|
--> linux/386: github.com/emilevauge/traefik
|
||||||
|
--> linux/amd64: github.com/emilevauge/traefik
|
||||||
|
|
||||||
|
$ ls dist/
|
||||||
|
traefik* traefik_darwin-386* traefik_darwin-amd64* traefik_linux-386* traefik_linux-amd64* traefik_linux-arm*
|
||||||
|
```
|
||||||
|
|
||||||
|
### Using `godep`
|
||||||
|
|
||||||
|
The idea behind `godep` is the following :
|
||||||
|
|
||||||
|
- when checkout(ing) a project, **run `godep restore`** to install
|
||||||
|
(`go get …`) the dependencies in the `GOPATH`.
|
||||||
|
- if you need another dependency, `go get` it, import and use it in
|
||||||
|
the source, and **run `godep save ./...` to save it in
|
||||||
|
`Godeps/Godeps.json` and vendoring it in `Godeps/_workspace/src`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ godep restore
|
||||||
|
# Simple go build
|
||||||
|
$ godep go build
|
||||||
|
# Using gox to build multiple platform
|
||||||
|
$ GOPATH=`godep path`:$GOPATH gox "linux darwin" "386 amd64 arm" \
|
||||||
|
-output="dist/traefik_{{.OS}}-{{.Arch}}"
|
||||||
|
# run other commands like tests
|
||||||
|
$ godep go test ./...
|
||||||
|
ok _/home/vincent/src/github/vdemeester/traefik 0.004s
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tests
|
||||||
|
|
||||||
|
You can run unit tests using the `test-unit` target and the
|
||||||
|
integration test using the `test-integration` target.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ make test-unit
|
||||||
|
docker build -t "traefik-dev:your-feature-branch" -f build.Dockerfile .
|
||||||
|
# […]
|
||||||
|
docker run --rm -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -v "/home/vincent/src/github/vdemeester/traefik/dist:/go/src/github.com/emilevauge/traefik/dist" "traefik-dev:your-feature-branch" ./script/make.sh generate test-unit
|
||||||
|
---> Making bundle: generate (in .)
|
||||||
|
removed 'gen.go'
|
||||||
|
|
||||||
|
---> Making bundle: test-unit (in .)
|
||||||
|
+ go test -cover -coverprofile=cover.out .
|
||||||
|
ok github.com/emilevauge/traefik 0.005s coverage: 4.1% of statements
|
||||||
|
|
||||||
|
Test success
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue