将参数从Jenkins CI传递到npm脚本

问题描述 投票:1回答:1

[当我运行Jenkins build时,我想将COMMIT_HASHBRANCH_NAME传递到我的一个JavaScript文件:publish.js,以便可以删除tagsconsumerVersion的硬编码值。] >

这是我的代码:

[Jenkinsfile

stage('Publish Pacts') {
    steps {
        script {
            sh 'npm run publish:pact -Dpact.consumer.version=${COMMIT_HASH} -Dpact.tag=${env.BRANCH_NAME}'
        }
    }
}

package.json

"scripts": {
    "publish:pact": "node ./src/test/pact/publish.js"
}

./ src / test / pact / publish.js

let publisher = require('@pact-foundation/pact-node');
let path = require('path');

let opts = {
    providerBaseUrl: `http://localhost:${global.port}`,
    pactFilesOrDirs: [path.resolve(process.cwd(), 'pacts')],
    pactBroker: 'http://localhost:80',
    tags: ["prod", "test"], // $BRANCH_NAME
    consumerVersion: "2.0.0" // $COMMIT_HASH
};

publisher.publishPacts(opts).then(() => {
    console.log("Pacts successfully published");
    done()
});

有人知道该怎么做吗?

[当我运行Jenkins build时,我想将COMMIT_HASH和BRANCH_NAME传递给我的一个javascript文件:publish.js,这样我就可以删除标记和ConsumerVersion的硬编码值。这是我的...

node.js npm-scripts jenkins-job-dsl pact
1个回答
1
投票

您可以将cli参数传递到结点脚本,该结点以process.argv结尾。npm也通过两个破折号cli arguments传递到--

© www.soinside.com 2019 - 2024. All rights reserved.