/
Jenkinsfile-ocp
97 lines (89 loc) · 2.51 KB
/
Jenkinsfile-ocp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
pipeline {
agent {
label 'linux'
}
options {
timeout(time: 300, unit: 'MINUTES')
}
environment {
VAULT_ADDR = credentials('vault-addr')
VAULT_ROLE_ID = credentials('vault-role-id')
VAULT_SECRET_ID = credentials('vault-secret-id')
GCLOUD_PROJECT = credentials('k8s-operators-gcloud-project')
}
stages {
stage('Checkout from GitHub') {
steps {
checkout scm
}
}
stage('Run Checks') {
steps {
sh 'make -C build/ci TARGET=ci-check ci'
}
}
stage("Run E2E tests") {
steps {
sh """
cat >.env <<EOF
GCLOUD_PROJECT = $GCLOUD_PROJECT
REGISTRY = eu.gcr.io
IMG_SUFFIX = -ci
REPOSITORY = $GCLOUD_PROJECT
TEST_LICENSE = /go/src/github.com/elastic/cloud-on-k8s/build/ci/test-license.json
GO_TAGS = release
export LICENSE_PUBKEY = /go/src/github.com/elastic/cloud-on-k8s/build/ci/license.key
E2E_JSON = true
TEST_TIMEOUT = 10m
EOF
cat >deployer-config.yml <<EOF
id: ocp-ci
overrides:
clusterName: $BUILD_TAG
vaultInfo:
address: $VAULT_ADDR
roleId: $VAULT_ROLE_ID
secretId: $VAULT_SECRET_ID
ocp:
gCloudProject: $GCLOUD_PROJECT
EOF
"""
script {
env.SHELL_EXIT_CODE = sh(returnStatus: true, script: 'make -C build/ci get-test-license get-elastic-public-key TARGET=ci-e2e ci')
sh 'make -C build/ci TARGET=e2e-generate-xml ci'
junit "e2e-tests.xml"
if (env.SHELL_EXIT_CODE != 0) {
googleStorageUpload bucket: "gs://devops-ci-artifacts/jobs/$JOB_NAME/$BUILD_NUMBER",
credentialsId: "devops-ci-gcs-plugin",
pattern: "*.tgz",
sharedPublicly: true,
showInline: true
}
sh 'exit $SHELL_EXIT_CODE'
}
}
}
}
post {
cleanup {
script {
sh """
cat >deployer-config.yml <<EOF
id: ocp-ci
overrides:
operation: delete
clusterName: $BUILD_TAG
vaultInfo:
address: $VAULT_ADDR
roleId: $VAULT_ROLE_ID
secretId: $VAULT_SECRET_ID
ocp:
gCloudProject: $GCLOUD_PROJECT
EOF
make -C build/ci TARGET=run-deployer ci
"""
}
cleanWs()
}
}
}