aboutsummaryrefslogtreecommitdiff
path: root/.circleci
diff options
context:
space:
mode:
authorGravatar Sandeep Rajan <srajan@infoblox.com> 2019-06-17 14:26:42 -0400
committerGravatar Miek Gieben <miek@miek.nl> 2019-06-17 19:26:42 +0100
commitade5ea2361aabc8a0f7b0fc0340ef890aaaf33c3 (patch)
tree9e69a3917fa01eb817eede990b05f3df7d66e88c /.circleci
parentc432f894b287707707407385d679872dd5b444cb (diff)
downloadcoredns-ade5ea2361aabc8a0f7b0fc0340ef890aaaf33c3.tar.gz
coredns-ade5ea2361aabc8a0f7b0fc0340ef890aaaf33c3.tar.zst
coredns-ade5ea2361aabc8a0f7b0fc0340ef890aaaf33c3.zip
Add CircleCI for Integration testing (#2889)
* add circleci * make ci work * use existing script for setup * add sep step for getting CI repo
Diffstat (limited to '.circleci')
-rw-r--r--.circleci/config.yml69
1 files changed, 69 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 000000000..79f6d2e47
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,69 @@
+version: 2
+
+initWorkingDir: &initWorkingDir
+ type: shell
+ name: Initialize Working Directory
+ pwd: /
+ command: |
+ mkdir -p ~/go/src/${CIRCLE_PROJECT_USERNAME}/coredns
+ sudo chown -R circleci ~/go
+ mkdir -p ~/go/out/tests
+ mkdir -p ~/go/out/logs
+ mkdir -p /home/circleci/logs
+ GOROOT=$(go env GOROOT)
+ sudo rm -r $(go env GOROOT)
+ sudo mkdir $GOROOT
+ curl https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz | sudo tar xz -C $GOROOT --strip-components=1
+
+integrationDefaults: &integrationDefaults
+ machine:
+ image: ubuntu-1604:201903-01
+ working_directory: ~/go/src/${CIRCLE_PROJECT_USERNAME}/coredns
+ environment:
+ - K8S_VERSION: v1.13.3
+ - KUBECONFIG: /home/circleci/.kube/config
+ - MINIKUBE_VERSION: v0.33.1
+ - MINIKUBE_WANTUPDATENOTIFICATION: false
+ - MINIKUBE_WANTREPORTERRORPROMPT: false
+ - CHANGE_MINIKUBE_NONE_USER: true
+ - MINIKUBE_HOME: /home/circleci
+
+setupKubernetes: &setupKubernetes
+ - run:
+ name: Setup Kubernetes
+ command: ~/go/src/${CIRCLE_PROJECT_USERNAME}/ci/build/kubernetes/minikube_setup.sh
+
+buildCoreDNSImage: &buildCoreDNSImage
+ - run:
+ name: Build latest CoreDNS Docker image
+ command: |
+ cd ~/go/src/${CIRCLE_PROJECT_USERNAME}/coredns
+ make coredns SYSTEM="GOOS=linux" && \
+ docker build -t coredns . && \
+ docker tag coredns localhost:5000/coredns && \
+ docker push localhost:5000/coredns
+
+jobs:
+ kubernetes-tests:
+ <<: *integrationDefaults
+ steps:
+ - <<: *initWorkingDir
+ - checkout
+ - run:
+ name: Get CI repo
+ command : |
+ mkdir -p ~/go/src/${CIRCLE_PROJECT_USERNAME}/ci
+ git clone https://github.com/${CIRCLE_PROJECT_USERNAME}/ci ~/go/src/${CIRCLE_PROJECT_USERNAME}/ci
+ - <<: *setupKubernetes
+ - <<: *buildCoreDNSImage
+ - run:
+ name: Run Kubernetes tests
+ command: |
+ cd ~/go/src/${CIRCLE_PROJECT_USERNAME}/ci/test/kubernetes
+ GO111MODULE=on go test -v ./...
+
+workflows:
+ version: 2
+ integration-tests:
+ jobs:
+ - kubernetes-tests