|
1 | | -stages: |
2 | | - - build |
3 | | - - image |
4 | | - - test |
5 | | - - deploy |
6 | | - - cleanup |
| 1 | +include: |
| 2 | +- project: 'ci-tools/container-image-ci-templates' |
| 3 | + file: 'kaniko-image.gitlab-ci.yml' |
| 4 | + ref: master |
| 5 | +- project: 'ci-tools/container-image-ci-templates' |
| 6 | + file: 'helm.gitlab-ci.yml' |
| 7 | + ref: master |
7 | 8 |
|
8 | | -before_script: |
9 | | - - export CLUSTER_NAME=cvmfs-validation-$(echo $CI_COMMIT_SHA | head -c 6) |
10 | | - - export BASE_CLUSTER_TEMPLATE="kubernetes-1.17.2-3" |
11 | | - - export OS_AUTH_URL="https://keystone.cern.ch/main/v3" |
12 | | - - export OS_IDENTITY_API_VERSION="3" |
13 | | - - export OS_USERNAME="svcbuild" |
14 | | - - export OS_PASSWORD="$SVCBUILD_PASSWORD" |
15 | | - - export OS_PROJECT_NAME="Cloud CI" |
16 | | - - export OS_REGION_NAME="cern" |
17 | | - - export OS_DEFAULT_DOMAIN_NAME="default" |
18 | | - - export OS_TENANT_ID="ec9ce822-d12f-453e-9f18-110652a85798" |
19 | | - - export OS_TENANT_NAME="Cloud CI" |
| 9 | +stages: |
| 10 | + - build-bin |
| 11 | + - build-image |
| 12 | + - build-chart |
20 | 13 |
|
21 | | -build: |
22 | | - stage: build |
23 | | - image: gitlab-registry.cern.ch/cloud/ciadm:v0.3.6 |
24 | | - script: |
25 | | - - make |
26 | | - - make test |
| 14 | +build-bin: |
| 15 | + stage: build-bin |
| 16 | + rules: |
| 17 | + - if: $CI_COMMIT_BRANCH || $CI_COMMIT_TAG |
| 18 | + image: registry.cern.ch/docker.io/library/golang:1.19 |
27 | 19 | artifacts: |
28 | | - expire_in: '30 minutes' |
| 20 | + expire_in: '10 minutes' |
29 | 21 | paths: |
30 | 22 | - bin/csi-cvmfsplugin |
31 | | - except: |
32 | | - - qa |
33 | | - - master |
| 23 | + script: |
| 24 | + - make |
34 | 25 |
|
35 | | -buildimg: |
36 | | - stage: image |
| 26 | +build-image: |
| 27 | + rules: |
| 28 | + - if: $CI_COMMIT_TAG |
| 29 | + variables: |
| 30 | + PUSH_IMAGE: "true" |
| 31 | + - if: $CI_COMMIT_BRANCH |
| 32 | + stage: build-image |
| 33 | + extends: .build_kaniko |
37 | 34 | variables: |
38 | | - TO: "${CI_REGISTRY_IMAGE}/cvmfs-csi:${CI_COMMIT_SHORT_SHA}" |
39 | | - CONTEXT_DIR: "./" |
40 | | - DOCKER_FILE: "deployments/docker/Dockerfile" |
41 | | - tags: |
42 | | - - docker-image-build |
43 | | - script: "echo" |
44 | | - dependencies: |
45 | | - - build |
46 | | - only: |
47 | | - - branches |
48 | | - except: |
49 | | - - master |
50 | | - |
51 | | -testk8s: |
52 | | - stage: test |
53 | | - image: gitlab-registry.cern.ch/cloud/ciadm:v0.3.6 |
54 | | - script: | |
55 | | - LABELS=$(openstack coe cluster template show -f json $BASE_CLUSTER_TEMPLATE | jq --raw-output '.labels | to_entries | map("--labels \(.key)=\(.value)") | join(" ")') |
56 | | - openstack coe cluster create $CLUSTER_NAME --cluster-template $BASE_CLUSTER_TEMPLATE --keypair lxplus --node-count 1 --master-count 1 --flavor m2.small $LABELS |
57 | | - sleep 10 |
58 | | - STATUS=$(openstack coe cluster show $CLUSTER_NAME -c status -f value) |
59 | | - while [ "${STATUS}" != "CREATE_COMPLETE" ] && [ "${STATUS}" != "CREATE_FAILED" ] |
60 | | - do |
61 | | - STATUS=$(openstack coe cluster show $CLUSTER_NAME -c status -f value) |
62 | | - echo "Current cluster status ... $STATUS $(date)" |
63 | | - sleep 10 |
64 | | - done |
65 | | -
|
66 | | - openstack coe cluster show $CLUSTER_NAME |
67 | | - openstack coe cluster config $CLUSTER_NAME |
68 | | - export KUBECONFIG=config |
| 35 | + REGISTRY_IMAGE_PATH: "registry.cern.ch/magnum/cvmfs-csi:$CI_COMMIT_TAG" |
| 36 | + CONTEXT_DIR: "." |
| 37 | + DOCKER_FILE_NAME: "deployments/docker/Dockerfile" |
69 | 38 |
|
70 | | - for m in $(ls test) |
71 | | - do |
72 | | - kubectl create --validate=false -f test/${m} |
73 | | - done |
74 | | - for m in $(ls test) |
75 | | - do |
76 | | - kubectl wait --for=condition=complete --timeout=600s -l ci=true --all-namespaces job |
77 | | - done |
78 | | - dependencies: |
79 | | - - buildimg |
80 | | - except: |
81 | | - - master |
82 | | - - qa |
83 | | - |
84 | | -cleanup test clusters: |
85 | | - stage: cleanup |
86 | | - image: gitlab-registry.cern.ch/cloud/ciadm:v0.3.6 |
87 | | - script: | |
88 | | - STATUS=$(openstack coe cluster show $CLUSTER_NAME -c status -f value) |
89 | | - while true |
90 | | - do |
91 | | - if [ "${STATUS}" != "DELETE_IN_PROGRESS" ] |
92 | | - then |
93 | | - openstack coe cluster delete $CLUSTER_NAME || true |
94 | | - fi |
95 | | - sleep 10 |
96 | | - if STATUS=$(openstack coe cluster show $CLUSTER_NAME -c status -f value) |
97 | | - then |
98 | | - echo "Current cluster status ... $STATUS $(date)" |
99 | | - else |
100 | | - echo "done" |
101 | | - break |
102 | | - fi |
103 | | - done |
104 | | - when: always |
105 | | - except: |
106 | | - - master |
107 | | - - qa |
| 39 | +build-chart: |
| 40 | + rules: |
| 41 | + - if: $CI_COMMIT_TAG |
| 42 | + variables: |
| 43 | + PUSH_CHART: "true" |
| 44 | + - if: $CI_COMMIT_BRANCH |
| 45 | + stage: build-chart |
| 46 | + extends: .deploy_helm |
| 47 | + variables: |
| 48 | + REGISTRY_PATH: registry.cern.ch/chartrepo/cern |
0 commit comments