@@ -1,167 +0,0 @@
|
|||||||
version: 2.0
|
|
||||||
jobs:
|
|
||||||
validate:
|
|
||||||
resource_class: xlarge
|
|
||||||
docker:
|
|
||||||
- image: circleci/golang:1.15
|
|
||||||
environment:
|
|
||||||
GO111MODULE: "on"
|
|
||||||
GOPROXY: https://proxy.golang.org
|
|
||||||
working_directory: /go/src/github.com/virtual-kubelet/virtual-kubelet
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- restore_cache:
|
|
||||||
keys:
|
|
||||||
- validate-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}
|
|
||||||
- run:
|
|
||||||
name: go vet
|
|
||||||
command: V=1 CI=1 make vet
|
|
||||||
- run:
|
|
||||||
name: Lint
|
|
||||||
command: make lint
|
|
||||||
- run:
|
|
||||||
name: Dependencies
|
|
||||||
command: scripts/validate/gomod.sh
|
|
||||||
- save_cache:
|
|
||||||
key: validate-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}
|
|
||||||
paths:
|
|
||||||
- "/go/pkg/mod"
|
|
||||||
|
|
||||||
test:
|
|
||||||
resource_class: xlarge
|
|
||||||
docker:
|
|
||||||
- image: circleci/golang:1.16
|
|
||||||
environment:
|
|
||||||
GO111MODULE: "on"
|
|
||||||
working_directory: /go/src/github.com/virtual-kubelet/virtual-kubelet
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- restore_cache:
|
|
||||||
keys:
|
|
||||||
- test-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}
|
|
||||||
- run:
|
|
||||||
name: Build
|
|
||||||
command: V=1 make build
|
|
||||||
- run: go install gotest.tools/gotestsum@latest
|
|
||||||
- run:
|
|
||||||
name: Tests
|
|
||||||
environment:
|
|
||||||
GOTEST: gotestsum -- -timeout=9m
|
|
||||||
GOTESTSUM_JUNITFILE: output/unit/results.xml
|
|
||||||
GODEBUG: cgocheck=2
|
|
||||||
command: |
|
|
||||||
mkdir -p output/unit
|
|
||||||
V=1 make test envtest
|
|
||||||
- save_cache:
|
|
||||||
key: test-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}
|
|
||||||
paths:
|
|
||||||
- "/go/pkg/mod"
|
|
||||||
- store_test_results:
|
|
||||||
path: output
|
|
||||||
|
|
||||||
e2e:
|
|
||||||
machine:
|
|
||||||
image: ubuntu-1604:202010-01
|
|
||||||
working_directory: /home/circleci/go/src/github.com/virtual-kubelet/virtual-kubelet
|
|
||||||
environment:
|
|
||||||
CHANGE_MINIKUBE_NONE_USER: true
|
|
||||||
GOPATH: /home/circleci/go
|
|
||||||
KUBECONFIG: /home/circleci/.kube/config
|
|
||||||
KUBERNETES_VERSION: v1.20.1
|
|
||||||
MINIKUBE_HOME: /home/circleci
|
|
||||||
MINIKUBE_VERSION: v1.16.0
|
|
||||||
MINIKUBE_WANTUPDATENOTIFICATION: false
|
|
||||||
MINIKUBE_WANTREPORTERRORPROMPT: false
|
|
||||||
SKAFFOLD_VERSION: v1.17.2
|
|
||||||
GO111MODULE: "on"
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- run:
|
|
||||||
name: Install kubectl
|
|
||||||
command: |
|
|
||||||
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/bin/linux/amd64/kubectl
|
|
||||||
chmod +x kubectl
|
|
||||||
sudo mv kubectl /usr/local/bin/
|
|
||||||
mkdir -p ${HOME}/.kube
|
|
||||||
touch ${HOME}/.kube/config
|
|
||||||
- run:
|
|
||||||
name: Install Skaffold
|
|
||||||
command: |
|
|
||||||
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/${SKAFFOLD_VERSION}/skaffold-linux-amd64
|
|
||||||
chmod +x skaffold
|
|
||||||
sudo mv skaffold /usr/local/bin/
|
|
||||||
- run:
|
|
||||||
name: Install Minikube dependencies
|
|
||||||
command: |
|
|
||||||
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
|
|
||||||
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
|
|
||||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
|
||||||
deb https://apt.kubernetes.io/ kubernetes-xenial main
|
|
||||||
EOF
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y kubelet # systemd unit is disabled
|
|
||||||
- run:
|
|
||||||
name: Install Minikube
|
|
||||||
command: |
|
|
||||||
curl -Lo minikube https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-amd64
|
|
||||||
chmod +x minikube
|
|
||||||
sudo mv minikube /usr/local/bin/
|
|
||||||
- run:
|
|
||||||
name: Start Minikube
|
|
||||||
command: |
|
|
||||||
sudo -E minikube start --vm-driver=none --cpus 2 --memory 2048 --kubernetes-version=${KUBERNETES_VERSION}
|
|
||||||
- run:
|
|
||||||
name: Wait for Minikube
|
|
||||||
command: |
|
|
||||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}';
|
|
||||||
until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do
|
|
||||||
sleep 1;
|
|
||||||
done
|
|
||||||
- run:
|
|
||||||
name: Watch pods
|
|
||||||
command: kubectl get pods -o json --watch
|
|
||||||
background: true
|
|
||||||
- run:
|
|
||||||
name: Watch nodes
|
|
||||||
command: kubectl get nodes -o json --watch
|
|
||||||
background: true
|
|
||||||
- restore_cache:
|
|
||||||
keys:
|
|
||||||
- e2e-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}-2
|
|
||||||
- run:
|
|
||||||
name: Run the end-to-end test suite
|
|
||||||
environment:
|
|
||||||
GOTEST: gotestsum --
|
|
||||||
command: |
|
|
||||||
mkdir $HOME/.go
|
|
||||||
export PATH=$HOME/.go/bin:${PATH}
|
|
||||||
curl -fsSL -o "/tmp/go.tar.gz" "https://dl.google.com/go/go1.16.4.linux-amd64.tar.gz"
|
|
||||||
tar -C $HOME/.go --strip-components=1 -xzf "/tmp/go.tar.gz"
|
|
||||||
go version
|
|
||||||
mkdir -p output/e2e
|
|
||||||
export GOTESTSUM_JUNITFILE="$(pwd)/output/e2e/results.xml"
|
|
||||||
export PATH="${GOPATH}/bin:${PATH}"
|
|
||||||
go install gotest.tools/gotestsum@latest
|
|
||||||
make e2e
|
|
||||||
- store_test_results:
|
|
||||||
path: output
|
|
||||||
- save_cache:
|
|
||||||
key: e2e-{{ checksum "go.mod" }}-{{ checksum "go.sum" }}-2
|
|
||||||
paths:
|
|
||||||
- "/home/circleci/go/pkg/mod"
|
|
||||||
- run:
|
|
||||||
name: Collect logs on failure from vkubelet-mock-0
|
|
||||||
command: |
|
|
||||||
kubectl logs vkubelet-mock-0
|
|
||||||
when: on_fail
|
|
||||||
|
|
||||||
workflows:
|
|
||||||
version: 2
|
|
||||||
validate_and_test:
|
|
||||||
jobs:
|
|
||||||
- validate
|
|
||||||
- test
|
|
||||||
- e2e:
|
|
||||||
requires:
|
|
||||||
- validate
|
|
||||||
- test
|
|
||||||
Reference in New Issue
Block a user