Когда я запускаю сборку Jenkins, я хотел бы передать COMMIT_HASH
и BRANCH_NAME
в один из моих javascript файлов: publish.js
, чтобы я мог удалить жестко запрограммированные значения для tags
и consumerVersion
.
Вот мой код:
Jenkinsfile
stage('Publish Pacts') {
steps {
script {
sh 'npm run publish:pact -Dpact.consumer.version=${COMMIT_HASH} -Dpact.tag=${env.BRANCH_NAME}'
}
}
}
пакет. json
"scripts": {
"publish:pact": "node ./src/test/pact/publish.js"
}
. / Src / test / pact / publi sh. 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()
});
Кто-нибудь знает, как это сделать?