2017-05-14 13:22:45 +00:00
|
|
|
#!groovy
|
2019-07-31 15:30:58 +00:00
|
|
|
/*
|
2022-09-26 16:27:02 +00:00
|
|
|
Copyright 2017-2022 Jan Dittberner
|
2019-07-31 15:30:58 +00:00
|
|
|
|
2021-03-07 18:58:57 +00:00
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this program except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
2019-07-31 15:30:58 +00:00
|
|
|
|
2021-03-07 18:58:57 +00:00
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
2019-07-31 15:30:58 +00:00
|
|
|
|
2021-03-07 18:58:57 +00:00
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
2019-07-31 15:30:58 +00:00
|
|
|
*/
|
2017-05-14 13:22:45 +00:00
|
|
|
pipeline {
|
|
|
|
agent any
|
|
|
|
|
2021-03-07 19:22:06 +00:00
|
|
|
tools {
|
2022-05-09 16:06:11 +00:00
|
|
|
go "go-1.18"
|
2017-05-14 13:22:45 +00:00
|
|
|
}
|
|
|
|
|
2022-09-26 16:27:02 +00:00
|
|
|
environment {
|
|
|
|
GOPATH = "${env.WORKSPACE_TMP}/go"
|
|
|
|
}
|
|
|
|
|
2017-05-14 13:22:45 +00:00
|
|
|
stages {
|
2022-09-26 16:27:02 +00:00
|
|
|
stage('Lint') {
|
|
|
|
when { not { branch 'debian' } }
|
|
|
|
steps {
|
|
|
|
script {
|
|
|
|
if (!fileExists("${env.GOPATH}/bin/golangci-lint")) {
|
|
|
|
sh label: 'Install golangci-lint', script: 'mkdir -p "$(go env GOPATH)"; curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sh label: 'Show environment', script: 'go env GOPATH'
|
2022-09-26 17:28:25 +00:00
|
|
|
sh label: 'Run golangci-lint', script: '$(go env GOPATH)/bin/golangci-lint run --timeout=10m0s --sort-results --verbose --max-same-issues 0 --max-issues-per-linter 0'
|
2022-09-26 16:27:02 +00:00
|
|
|
}
|
|
|
|
}
|
2017-05-14 13:22:45 +00:00
|
|
|
stage('Build') {
|
2022-09-26 16:27:02 +00:00
|
|
|
when { not { branch 'debian' } }
|
|
|
|
steps {
|
2022-10-15 18:04:03 +00:00
|
|
|
sh label: 'Build binary', script: 'make clean && make'
|
2022-09-26 16:27:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
stage('Test') {
|
|
|
|
when { not { branch 'debian' } }
|
2017-05-14 13:22:45 +00:00
|
|
|
steps {
|
2022-10-15 18:04:03 +00:00
|
|
|
sh label: 'Run tests', script: 'make test'
|
2017-05-14 13:22:45 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
stage('Create build output') {
|
2022-09-26 16:27:02 +00:00
|
|
|
when { not { branch 'debian' } }
|
2017-05-14 13:22:45 +00:00
|
|
|
steps {
|
2018-03-29 20:04:03 +00:00
|
|
|
archiveArtifacts artifacts: 'cacert-boardvoting,config.yaml.example'
|
2017-05-14 13:22:45 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|