diff --git a/.drone.yml b/.drone.yml index 54482bcaafc6..570ea4fcc55e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -604,9 +604,28 @@ steps: - name: docker path: /var/run/docker.sock -- name: test-e2e +# For better parallelism, we run the E2E tests in a chunked directed acyclic graph +# First we cleanup any VMs that are older than 2h. Then, tests are split into 2 groups: +# - validatecluster and upgradecluster +# - secretsencryption and splitserver + +- name: cleanup-vms image: test-e2e pull: never + depends_on: + - build-e2e-image + commands: + # Cleanup VMs that are older than 2h. Happens if a previous test panics or is canceled + - tests/e2e/scripts/cleanup_vms.sh + volumes: + - name: libvirt + path: /var/run/libvirt/ + +- name: test-e2e-block1 + image: test-e2e + depends_on: + - cleanup-vms + pull: never resources: cpu: 6000 memory: 10Gi @@ -617,24 +636,12 @@ steps: - mkdir -p dist/artifacts - cp /tmp/artifacts/* dist/artifacts/ - docker stop registry && docker rm registry - # Cleanup VMs that are older than 2h. Happens if a previous test panics or is canceled - - tests/e2e/scripts/cleanup_vms.sh - docker run -d -p 5000:5000 -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io --name registry registry:2 - | cd tests/e2e/validatecluster vagrant destroy -f go test -v -timeout=45m ./validatecluster_test.go -ci -local cp ./coverage.out /tmp/artifacts/validate-coverage.out - - | - cd ../secretsencryption - vagrant destroy -f - go test -v -timeout=30m ./secretsencryption_test.go -ci -local - cp ./coverage.out /tmp/artifacts/se-coverage.out - - | - cd ../splitserver - vagrant destroy -f - go test -v -timeout=30m ./splitserver_test.go -ci -local - cp ./coverage.out /tmp/artifacts/split-coverage.out - | if [ "$DRONE_BUILD_EVENT" = "pull_request" ]; then cd ../upgradecluster @@ -652,6 +659,7 @@ steps: E2E_RELEASE_CHANNEL=$UPGRADE_CHANNEL go test -v -timeout=45m ./upgradecluster_test.go -ci -local -ginkgo.v cp ./coverage.out /tmp/artifacts/upgrade-coverage.out fi + - docker stop registry && docker rm registry volumes: @@ -662,8 +670,43 @@ steps: - name: cache path: /tmp/artifacts +- name: test-e2e-block2 + image: test-e2e + depends_on: + - cleanup-vms + pull: never + resources: + cpu: 6000 + memory: 10Gi + environment: + E2E_GOCOVER: 'true' + commands: + - mkdir -p dist/artifacts + - cp /tmp/artifacts/* dist/artifacts/ + - | + cd ../secretsencryption + vagrant destroy -f + go test -v -timeout=30m ./secretsencryption_test.go -ci -local + cp ./coverage.out /tmp/artifacts/se-coverage.out + - | + cd ../splitserver + vagrant destroy -f + go test -v -timeout=30m ./splitserver_test.go -ci -local + cp ./coverage.out /tmp/artifacts/split-coverage.out + + volumes: + - name: libvirt + path: /var/run/libvirt/ + - name: docker + path: /var/run/docker.sock + - name: cache + path: /tmp/artifacts + - name: upload to codecov image: robertstettner/drone-codecov + depends_on: + - test-e2e-block1 + - test-e2e-block2 settings: token: from_secret: codecov_token