From e2f567de8583d619f83822a039ff5fef071ba9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Wed, 12 Dec 2018 20:52:37 +0100 Subject: [PATCH] Add developer guide --- README.md | 4 +++ doc/developer-guide.md | 79 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 doc/developer-guide.md diff --git a/README.md b/README.md index c17bb9a2..fc18a74c 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Kubernetes native Jenkins operator ## Developer guide +Can be found [here][developer_guide] + ## TODO - send Kubernetes events @@ -21,3 +23,5 @@ User configuration: - apply custom configuration by configuration as a code Jenkins plugin - trigger backup job before pod deletion - verify Jenkins configuration events + +[developer_guide]:doc/developer-guide.md \ No newline at end of file diff --git a/doc/developer-guide.md b/doc/developer-guide.md new file mode 100644 index 00000000..43a34b7a --- /dev/null +++ b/doc/developer-guide.md @@ -0,0 +1,79 @@ +# Developer guide + +This document explains how to setup your dev environment. + +## Prerequisites +- [dep][dep_tool] version v0.5.0+ +- [git][git_tool] +- [go][go_tool] version v1.10+ + +## Download Operator SDK + +Go to the [jenkins-operator repo][jenkins-operator] and follow the [fork guide][fork_guide] to fork, clone, and setup the local jenkins-operator repository. + +## Vendor dependencies + +Run the following in the project root directory to update the vendored dependencies: + +```sh +$ cd $GOPATH/src/github.com/VirtusLab/jenkins-operator +$ make go-dependencies +``` + +## Build the Operator + +Build the Operator `jenkins-operator` binary: + +```sh +$ make build +``` + +Build the Operator `jenkins-operator` docker image: + +```sh +$ make build +$ make docker-build +``` + +## Run + +Run locally with minikube: + +```sh +$ make minikube-run EXTRA_ARGS='--minikube --local' +``` + +## Testing + +Run unit tests: + +```sh +$ make test +``` + +Run e2e tests with minikube: + +```sh +$ make minikube-run +$ eval $(minikube docker-env) +$ make docker-build +$ make e2e E2E_IMAGE= +``` + +**Note:** running all tests requires: +- [docker][docker_tool] version 17.03+ +- [kubectl][kubectl_tool] version v1.10.0+ +- [minikube][minikube] version v0.30.0+(preferred Hypervisor - [virtualbox][virtualbox]) + +See the project [README][jenkins-operator] for more details. + +[dep_tool]:https://golang.github.io/dep/docs/installation.html +[git_tool]:https://git-scm.com/downloads +[go_tool]:https://golang.org/dl/ +[repo_sdk]:https://github.com/operator-framework/operator-sdk +[fork_guide]:https://help.github.com/articles/fork-a-repo/ +[docker_tool]:https://docs.docker.com/install/ +[kubectl_tool]:https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[minikube]:https://kubernetes.io/docs/tasks/tools/install-minikube/ +[virtualbox]:https://www.virtualbox.org/wiki/Downloads +[jenkins-operator]:../README.md \ No newline at end of file