Jan Dittberner
f27f2bf801
- update go tool in Jenkinsfile - update go version in go.mod - update README.md - update dependencies
60 lines
2 KiB
Groovy
60 lines
2 KiB
Groovy
#!groovy
|
|
/*
|
|
Copyright 2017-2022 Jan Dittberner
|
|
|
|
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
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
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.
|
|
*/
|
|
pipeline {
|
|
agent any
|
|
|
|
tools {
|
|
go "go-1.19"
|
|
}
|
|
|
|
environment {
|
|
GOPATH = "${env.WORKSPACE_TMP}/go"
|
|
}
|
|
|
|
stages {
|
|
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'
|
|
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'
|
|
}
|
|
}
|
|
stage('Build') {
|
|
when { not { branch 'debian' } }
|
|
steps {
|
|
sh label: 'Build binary', script: 'make clean && make'
|
|
}
|
|
}
|
|
stage('Test') {
|
|
when { not { branch 'debian' } }
|
|
steps {
|
|
sh label: 'Run tests', script: 'make test'
|
|
}
|
|
}
|
|
stage('Create build output') {
|
|
when { not { branch 'debian' } }
|
|
steps {
|
|
archiveArtifacts artifacts: 'cacert-boardvoting,config.yaml.example'
|
|
}
|
|
}
|
|
}
|
|
}
|