Development =========== .. _go-env: Go and environemt path ------------------------ Please run these commands to confirm you have Go installed properly. If you can't find the Go command, please check `The Go Programming Language - Getting Started `_ .. code-block:: bash $ go version go version go1.9.4 darwin/amd64 Also, please make sure you have the correct ``GOPATH`` in your enviroment variables to prevent compilation issues. .. code-block:: bash $ env|grep GOPATH GOPATH=/Users/charles/gowork .. note:: You can find more detail in `Setting GOPATH `_ Build Documentation -------------------- We use `Sphinx `_ to build this documentation, please make sure it is installed properly. .. code-block:: bash $ pip install sphinx $ pip install sphinx_rtd_theme $ make doc You should be able to find this documentation under ``docs/build/html/``. Run Unit Tests --------------- .. code-block:: console $ make test ### Check code coverage $ go tool cover -html=coverage.gowf.out $ go tool cover -html=coverage.dedup.out Run CI tests ------------- We use a ``.gitlab-ci.yml`` to help us run CI tests and build processes. Please run it and make sure it passes before submitting a patch upstream. Gitlab runner ++++++++++++++ .. code-block:: console $ sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64 $ sudo chmod +x /usr/local/bin/gitlab-runner .. note:: You can find more details in `Install Gitlab Runner on Mac `_ Docker +++++++ Please follow the instructions in `Install Docker for Mac `_ to install docker. Trigger GitLab runner with Docker +++++++++++++++++++++++++++++++++++ The GitLab runner launches a docker image and runs scripts to install required packages, all test cases and builds binaries in the end. .. code-block:: console $ make gitlab gitlab-runner exec docker format WARNING: Since GitLab Runner 10.0 this command is marked as DEPRECATED and will be removed in one of upcoming releases WARNING: You most probably have uncommitted changes. WARNING: These changes will not be tested. Running with gitlab-runner 10.4.0 (857480b6) on () Using Docker executor with image golang:1.9.2 ... Using docker image sha256:9427850b2591293a89c98ac80a9f8a67358998ea71d40fb2064c16ed7228c96d for predefined container... Pulling docker image golang:1.9.2 ... . . . GOOS=linux GOARCH=amd64 go build -ldflags "-w -s -X main.Version=0.0.8-26-gd1389df -X main.UpgradeServer=https://cloud.swiftstack.com/v1/AUTH_gowfdev/" -o /builds/project-0/build/gowf.linux cmd/gowf.go Running after script... Job succeeded