第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在每個(gè)測試中重復(fù)使用預(yù)處理 jenkins/groovy

如何在每個(gè)測試中重復(fù)使用預(yù)處理 jenkins/groovy

Go
慕標(biāo)琳琳 2023-05-15 10:07:35
我使用以下代碼來運(yùn)行我們的投票器,目前我有一個(gè)目標(biāo),它使用與最后一個(gè) (lint)Run Tests 完全相同的步驟,目前我復(fù)制它,我認(rèn)為這不是一個(gè)好的解決方案,有沒有好的方法為避免這種重復(fù)并根據(jù)必要的過程只完成一次?cd我需要完成項(xiàng)目之前的所有步驟唯一的區(qū)別是我運(yùn)行的一個(gè)目標(biāo)go test ...第二個(gè)go lint 之前的所有步驟都是平等的#!/usr/bin/env groovy    try {        parallel(                'Run Tests': {                    node {                        //————————Here we start                        checkout scm                        def dockerImage = 'docker.company:50001/crt/deg:0.1.3-09’                        setupPipelineEnvironment script: this,                         measureDuration(script: this, measurementName: 'build') {                            executeDocker(dockerImage: dockerImage,  dockerWorkspace: '/go/src') {                                sh """                                mkdir -p /go/src/github.com/ftr/myGoProj                                cp -R $WORKSPACE/* /go/src/github.com/ftr/MyGoProj                                cd  /go/src/github.com/ftr/MyGoProj                        //————————Here we finish and TEST                                go test -v ./...                                                           """                            }                        }                    }                },
查看完整描述

1 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以使用函數(shù)并傳遞 Go 參數(shù):


try {

    parallel(

        'Run Tests': {

            node {

                checkout scm

                runTestsInDocker('test -v ./...')

            }

        },

        'Lint': {

            node {

                checkout scm

                runTestsInDocker('lint')

            }

        }

    )

}



def runTestsInDocker(goArgs) {

    def dockerImage = 'docker.company:50001/crt/deg:0.1.3-09'

    setupPipelineEnvironment script: this, 

    measureDuration(script: this, measurementName: 'build') {

        executeDocker(dockerImage: dockerImage,  dockerWorkspace: '/go/src') {

            sh """

            mkdir -p /go/src/github.com/ftr/myGoProj

            cp -R $WORKSPACE/* /go/src/github.com/ftr/MyGoProj

            cd  /go/src/github.com/ftr/MyGoProj

            go ${goArgs}                        

            """

        }

    }

}

更新


如果某些動(dòng)作可以從中分離出來,那么runTestsInDocker它們可能應(yīng)該是。


例如setupPipelineEnvironment步驟。我不知道確切的邏輯,但也許它可以在運(yùn)行測試之前運(yùn)行一次。


node {

    stage('setup') {

        setupPipelineEnvironment script: this

    }

    stage ('Tests') {

        parallel(

            'Run Tests': {

                node {

                    checkout scm

                    runTestsInDocker('test -v ./...')

                }

            },

            'Lint': {

                node {

                    checkout scm

                    runTestsInDocker('lint')

                }

            }

        )

    }

}



def runTestsInDocker(goArgs) {

    def dockerImage = 'docker.company:50001/crt/deg:0.1.3-09'

    measureDuration(script: this, measurementName: 'build') {

        executeDocker(dockerImage: dockerImage,  dockerWorkspace: '/go/src') {

            sh """

            mkdir -p /go/src/github.com/ftr/myGoProj

            cp -R $WORKSPACE/* /go/src/github.com/ftr/MyGoProj

            cd  /go/src/github.com/ftr/MyGoProj

            go ${goArgs}                        

            """

        }

    }

}

筆記


如果您在遠(yuǎn)程代理上并行運(yùn)行,您必須記住,在主服務(wù)器上執(zhí)行的設(shè)置可能無法在遠(yuǎn)程從服務(wù)器上執(zhí)行。


查看完整回答
反對(duì) 回復(fù) 2023-05-15
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)