forked from intel/intel-ethernet-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
109 lines (100 loc) · 3.22 KB
/
Jenkinsfile
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
98
99
100
101
102
103
104
105
106
107
108
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2021 Intel Corporation
pipeline {
agent {
kubernetes {
label 'go'
}
}
stages {
stage('Prerequisites') {
steps {
container('go') {
dir("$WORKSPACE") {
sh '''
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin
curl -fsSL https://deb.nodesource.com/setup_12.x | bash -
apt-get install -y yamllint pciutils
mkdir /usr/share/hwdata
ln -s /usr/share/misc/pci.ids /usr/share/hwdata/pci.ids
update-pciids
'''
}
}
}
}
stage('Build') {
steps {
container('go') {
sh '''
echo "BUILD STEP: Build code"
rm -rf bin
if ! make all; then
echo "ERROR: Failed to build the intel-ethernet-operator code"
exit 1
fi
'''
}
}
}
stage('test') {
steps {
container('go') {
sh '''
echo "Run unit tests and gather code coverage"
rm -rf testbin
if ! make test; then
echo "ERROR: Failed to run unit tests"
exit 1
fi
go tool cover -func cover.out
'''
}
}
}
stage('code_style'){
steps{
container('go') {
sh '''
DIFFCHECK=$(gofmt)
if [ -n "$DIFFCHECK" ]; then
echo "WARNING: code style issues found"
fi
'''
}
}
}
stage('go lint'){
steps{
container('go') {
sh '''
echo "Run Go linter tools"
set -x
golangci-lint version
set +x
if ! golangci-lint run -c ${WORKSPACE}/.golangci.yml; then
echo "ERROR: Go lint check found errors"
exit 1
fi
'''
}
}
}
stage('yaml lint'){
steps{
container('go') {
sh '''
echo "Run yaml linter tools"
set -x
yamllint --version
set +x
yamllint .
if [ $? -ne 0 ]; then
exit 1
fi
'''
}
}
}
}
}