diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 48a20fab..00000000 --- a/Jenkinsfile +++ /dev/null @@ -1,142 +0,0 @@ -/* -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file 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. -*/ - -podTemplate (cloud:'sw-gpu-cloudnative', - containers: [ - containerTemplate(name: 'docker', image: 'docker:dind', ttyEnabled: true, privileged: true), - containerTemplate(name: 'golang', image: 'golang:1.16.3', ttyEnabled: true) - ]) { - node(POD_LABEL) { - def scmInfo - - stage('checkout') { - scmInfo = checkout(scm) - } - - stage('dependencies') { - container('golang') { - sh 'GO111MODULE=off go get -u github.com/client9/misspell/cmd/misspell' - sh 'GO111MODULE=off go get -u github.com/gordonklaus/ineffassign' - sh 'GO111MODULE=off go get -u golang.org/x/lint/golint' - } - container('docker') { - sh 'apk add --no-cache make bash git' - } - } - stage('check') { - parallel ( - getGolangStages(["assert-fmt", "lint", "vet", "ineffassign", "misspell"]) - ) - } - stage('test') { - parallel ( - getGolangStages(["test"]) - ) - } - - def versionInfo - stage('version') { - container('docker') { - versionInfo = getVersionInfo(scmInfo) - println "versionInfo=${versionInfo}" - } - } - - def dist = 'ubuntu20.04' - def arch = 'amd64' - def stageLabel = "${dist}-${arch}" - - stage('build-one') { - container('docker') { - stage (stageLabel) { - sh "make ${dist}-${arch}" - } - } - } - - stage('release') { - container('docker') { - stage (stageLabel) { - - def component = 'main' - def repository = 'sw-gpu-cloudnative-debian-local/pool/main/' - - def uploadSpec = """{ - "files": - [ { - "pattern": "./dist/${dist}/${arch}/*.deb", - "target": "${repository}", - "props": "deb.distribution=${dist};deb.component=${component};deb.architecture=${arch}" - } - ] - }""" - - sh "echo starting release with versionInfo=${versionInfo}" - if (versionInfo.isTag) { - // upload to artifactory repository - def server = Artifactory.server 'sw-gpu-artifactory' - server.upload spec: uploadSpec - } else { - sh "echo skipping release for non-tagged build" - } - } - } - } - } -} - -def getGolangStages(def targets) { - stages = [:] - - for (t in targets) { - stages[t] = getLintClosure(t) - } - - return stages -} - -def getLintClosure(def target) { - return { - container('golang') { - stage(target) { - sh "make ${target}" - } - } - } -} - -// getVersionInfo returns a hash of version info -def getVersionInfo(def scmInfo) { - def versionInfo = [ - isTag: isTag(scmInfo.GIT_BRANCH) - ] - - scmInfo.each { k, v -> versionInfo[k] = v } - return versionInfo -} - -def isTag(def branch) { - if (!branch.startsWith('v')) { - return false - } - - def version = shOutput('git describe --all --exact-match --always') - return version == "tags/${branch}" -} - -def shOuptut(def script) { - return sh(script: script, returnStdout: true).trim() -}