Commit 6b0dc5ff authored by Tim Leers's avatar Tim Leers

Improve ci

parent ec36b39c
......@@ -35,28 +35,173 @@ build:varnish:manual:
when: manual
build:controller:
extends: .build-image
stage: build
image: docker:19.03.8
services:
- docker:19.03.8-dind
variables:
IMAGE: controller
before_script:
- apk add -U make
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker pull $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/varnish-ingress/$IMAGE:latest || true
- cd container
- make controller
- docker tag varnish-ingress/controller $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker tag varnish-ingress/controller $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:latest
- docker push $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:latest
integration:
example:hello:
extends: .integration-tests
script:
- cd ../examples/hello
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:namespace:
extends: .integration-tests
script:
- cd ../examples/namespace
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:architectures:cluster-and-ns-wide:
extends: .integration-tests
script:
- cd ../examples/architectures/cluster-and-ns-wide
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:architectures:clusterwide:
extends: .integration-tests
script:
- cd ../examples/architectures/clusterwide
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:architectures:multi-controller:
extends: .integration-tests
script:
- cd ../examples/architectures/multi-controller
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:architectures:multi-varnish-ns:
extends: .integration-tests
script:
- cd ../examples/architectures/multi-varnish-ns
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:acl:
extends: .integration-tests
script:
- cd ../examples/acl
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:backend-config:
extends: .integration-tests
script:
- cd ../examples/backend-config
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:custom-vcl:
extends: .integration-tests
script:
- cd ../examples/custom-vcl
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:rewrite:
extends: .integration-tests
script:
- cd ../examples/rewrite
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:self-sharding:
extends: .integration-tests
script:
- cd ../examples/self-sharding
- ./deploy.sh
- ./verify.sh
- ./undeploy.sh
example:authentication:basic:
extends: .integration-tests
script:
- cd ../examples/authentication
- ./deploy_basic_auth.sh
- ./verify_basic_auth.sh
- ./undeploy_basic_auth.sh
example:authentication:acl-or-auth:
extends: .integration-tests
script:
- cd ../examples/authentication
- ./deploy_acl_or_auth.sh
- ./verify_acl_or_auth.sh
- ./undeploy_acl_or_auth.sh
example:authentication:proxy:
extends: .integration-tests
script:
- cd ../examples/authentication
- ./deploy_proxy_auth.sh
- ./verify_proxy_auth.sh
- ./undeploy_proxy_auth.sh
example:req-disposition:
extends: .integration-tests
script:
- cd ../examples/req-disposition
- ./deploy_alt-builtin.sh
- ./verify_alt-builtin.sh
- ./undeploy_alt-builtin.sh
- ./deploy_builtin.sh
- ./verify_builtin.sh
- ./undeploy_builtin.sh
- ./deploy_cacheability.sh
- ./verify_cacheability.sh
- ./undeploy_cacheability.sh
- ./deploy_pass-on-session-cookie.sh
- ./verify_pass-on-session-cookie.sh
- ./undeploy_pass-on-session-cookie.sh
- ./deploy_url-whitelist.sh
- ./verify_url-whitelist.sh
- ./undeploy_url-whitelist.sh
- ./deploy_purge.sh
- ./verify_purge.sh
- ./undeploy_purge.sh
example:varnish-pod-template:
extends: .integration-tests
script:
- cd ../examples/varnish_pod_template
- ./deploy_cli-args.sh
- ./verify_cli-args.sh
- ./deploy_env.sh
- ./verify_env.sh
- ./deploy_proxy.sh
- ./verify_proxy.sh
- ./undeploy.sh
.integration-tests:
needs: ["build:controller"]
stage: e2e
image: docker:19.03.8
retry: 2
services:
- docker:19.03.8-dind
variables:
......@@ -76,33 +221,42 @@ integration:
- kubectl get nodes -o wide
- kubectl get pods --all-namespaces -o wide
- kubectl get services --all-namespaces -o wide
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker pull $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/controller:$CI_COMMIT_SHA
- docker pull $CI_REGISTRY_IMAGE/varnish-ingress/controller:$CI_COMMIT_SHA
# using varnish image with latest tag due to performance. if we are changing this image a lot, we need to improve this as can lead to pulling the incorrect image
- docker pull $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/varnish:latest
- docker tag $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/controller:$CI_COMMIT_SHA varnish-ingress/controller
- docker tag $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/varnish:latest varnish-ingress/varnish
- docker pull $CI_REGISTRY_IMAGE/varnish-ingress/varnish:latest
- docker tag $CI_REGISTRY_IMAGE/varnish-ingress/controller:$CI_COMMIT_SHA varnish-ingress/controller
- docker tag $CI_REGISTRY_IMAGE/varnish-ingress/varnish:latest varnish-ingress/varnish
- kind load docker-image varnish-ingress/varnish
- kind load docker-image varnish-ingress/controller
- test/e2e.sh
- cd deploy
- ./init.sh
- ./deploy.sh
- ./verify.sh
# basic step for a pipeline to build the varnish image
.build-varnish:
extends: .build-image
stage: build
image: docker:19.03.8
services:
- docker:19.03.8-dind
variables:
IMAGE: varnish
before_script:
- apk add -U make
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker pull $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/varnish-ingress/$IMAGE:latest || true
- cd container
- make varnish
- docker tag varnish-ingress/$IMAGE $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker tag varnish-ingress/$IMAGE $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:latest
- docker push $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY/timleers/k8s-ingress/varnish-ingress/$IMAGE:latest
.build-image:
stage: build
image: docker:19.03.8
services:
- docker:19.03.8-dind
variables:
IMAGE: BASIC
before_script:
- apk add -U make
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker pull $CI_REGISTRY_IMAGE/varnish-ingress/$IMAGE:latest || true
after_script:
- docker tag varnish-ingress/$IMAGE $CI_REGISTRY_IMAGE/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker tag varnish-ingress/$IMAGE $CI_REGISTRY_IMAGE/varnish-ingress/$IMAGE:latest
- docker push $CI_REGISTRY_IMAGE/varnish-ingress/$IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE/varnish-ingress/$IMAGE:latest
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment