Merge pull request #685 from dtomcej/update-docs
Update docs to improve contribution setup
This commit is contained in:
commit
7e8937a332
1 changed files with 39 additions and 20 deletions
53
.github/CONTRIBUTING.md
vendored
53
.github/CONTRIBUTING.md
vendored
|
@ -2,16 +2,9 @@
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
You need either [Docker](https://github.com/docker/docker) and `make`, or `go` and `glide` in order to build traefik.
|
You need either [Docker](https://github.com/docker/docker) and `make` (Method 1), or `go` and `glide` (Method 2) in order to build traefik.
|
||||||
|
|
||||||
#### Setting up your `go` environment
|
#### Method 1: Using `Docker` and `Makefile`
|
||||||
|
|
||||||
- You need `go` v1.5
|
|
||||||
- You need to set `export GO15VENDOREXPERIMENT=1` environment variable
|
|
||||||
- You need `go-bindata` to be able to use `go generate` command (needed to build) : `go get github.com/jteeuwen/go-bindata/...`.
|
|
||||||
- If you clone Træfɪk into something like `~/go/src/github.com/traefik`, your `GOPATH` variable will have to be set to `~/go`: export `GOPATH=~/go`.
|
|
||||||
|
|
||||||
#### Using `Docker` and `Makefile`
|
|
||||||
|
|
||||||
You need to run the `binary` target. This will create binaries for Linux platform in the `dist` folder.
|
You need to run the `binary` target. This will create binaries for Linux platform in the `dist` folder.
|
||||||
|
|
||||||
|
@ -33,32 +26,51 @@ $ ls dist/
|
||||||
traefik*
|
traefik*
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Using `glide`
|
#### Method 2: Using `go` and `glide`
|
||||||
|
|
||||||
|
###### Setting up your `go` environment
|
||||||
|
|
||||||
|
- You need `go` v1.5+ (1.7 is acceptable)
|
||||||
|
- You need to set `$ export GO15VENDOREXPERIMENT=1` environment variable if you are using go v1.5 (it is already enabled in 1.6+)
|
||||||
|
- It is recommended you clone Træfɪk into a directory like `~/go/src/github.com/containous/traefik` (This is the official golang workspace hierarchy, and will allow dependencies to resolve properly)
|
||||||
|
- This will allow your `GOPATH` and `PATH` variable to be set to `~/go` via:
|
||||||
|
```
|
||||||
|
$ export GOPATH=~/go
|
||||||
|
$ export PATH=$PATH:$GOPATH/bin
|
||||||
|
```
|
||||||
|
|
||||||
|
This can be verified via `$ go env`
|
||||||
|
- You will want to add those 2 export lines to your `.bashrc` or `.bash_profile`
|
||||||
|
- You need `go-bindata` to be able to use `go generate` command (needed to build) : `$ go get github.com/jteeuwen/go-bindata/...` (Please note, the ellipses are required)
|
||||||
|
|
||||||
|
###### Setting up your `glide` environment
|
||||||
|
|
||||||
|
- Glide can be installed either via homebrew: `$ brew install glide` or via the official glide script: `$ curl https://glide.sh/get | sh`
|
||||||
|
|
||||||
The idea behind `glide` is the following :
|
The idea behind `glide` is the following :
|
||||||
|
|
||||||
- when checkout(ing) a project, **run `glide install`** to install
|
- when checkout(ing) a project, run `$ glide install` from the cloned directory to install
|
||||||
(`go get …`) the dependencies in the `GOPATH`.
|
(`go get …`) the dependencies in your `GOPATH`.
|
||||||
- if you need another dependency, import and use it in
|
- if you need another dependency, import and use it in
|
||||||
the source, and **run `glide get github.com/Masterminds/cookoo`** to save it in
|
the source, and run `$ glide get github.com/Masterminds/cookoo` to save it in
|
||||||
`vendor` and add it to your `glide.yaml`.
|
`vendor` and add it to your `glide.yaml`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ glide install
|
$ glide install
|
||||||
# generate
|
# generate (Only required to integrate other components such as web dashboard)
|
||||||
$ go generate
|
$ go generate
|
||||||
# Simple go build
|
# Standard go build
|
||||||
$ go build
|
$ go build
|
||||||
# Using gox to build multiple platform
|
# Using gox to build multiple platform
|
||||||
$ gox "linux darwin" "386 amd64 arm" \
|
$ gox "linux darwin" "386 amd64 arm" \
|
||||||
-output="dist/traefik_{{.OS}}-{{.Arch}}"
|
-output="dist/traefik_{{.OS}}-{{.Arch}}"
|
||||||
# run other commands like tests
|
# run other commands like tests
|
||||||
$ go test ./...
|
|
||||||
ok _/home/vincent/src/github/vdemeester/traefik 0.004s
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
|
##### Method 1: `Docker` and `make`
|
||||||
|
|
||||||
You can run unit tests using the `test-unit` target and the
|
You can run unit tests using the `test-unit` target and the
|
||||||
integration test using the `test-integration` target.
|
integration test using the `test-integration` target.
|
||||||
|
|
||||||
|
@ -94,6 +106,13 @@ TESTFLAGS="-check.f MyTestSuite.*Test" make test-integration
|
||||||
|
|
||||||
More: https://labix.org/gocheck
|
More: https://labix.org/gocheck
|
||||||
|
|
||||||
|
##### Method 2: `go` and `glide`
|
||||||
|
|
||||||
|
- Tests can be run from the cloned directory, by `$ go test ./...` which should return `ok` similar to:
|
||||||
|
```
|
||||||
|
ok _/home/vincent/src/github/vdemeester/traefik 0.004s
|
||||||
|
```
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
The [documentation site](http://docs.traefik.io/) is built with [mkdocs](http://mkdocs.org/)
|
The [documentation site](http://docs.traefik.io/) is built with [mkdocs](http://mkdocs.org/)
|
||||||
|
|
Loading…
Reference in a new issue