Add CircleCI for Integration testing (#2889)

* add circleci

* make ci work

* use existing script for setup

* add sep step for getting CI repo
This commit is contained in:
Sandeep Rajan 2019-06-17 14:26:42 -04:00 committed by Miek Gieben
parent c432f894b2
commit ade5ea2361

69
.circleci/config.yml Normal file
View file

@ -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