Параметризация трубопровода groovy для использования с Дженкинсом - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть groovy конвейер, который я унаследовал от проекта, который я раздвоил.

Я должен sh передать параметры выбора Jenkins как параметризованную сборку. В настоящее время я могу только sh раскрыть среду, в которой должен работать (но на более позднем этапе мне потребуется дальнейшая параметризация), чтобы пользователь мог выбрать ее из раскрывающегося списка Jenkins и использовать по требованию.

Я использовал генератор фрагментов, чтобы помочь.

Может кто-нибудь помочь с синтаксисом? Я использую Node с пакетом. json для запуска скрипта и с передачей либо dev, либо uat:

properties([[$class: 'BuildConfigProjectProperty', name: '', namespace: '', resourceVersion: '', uid: ''], parameters([choice(choices: 'e2e\nuat', description: 'environment ', name: 'env')])])

node('de-no1') {
        try {
            stage('DEV: Initialise') {
            git url: 'https://myrepo.org/mycompany/create-new-user.git', branch: 'master', credentialsId: CREDENTIALS_ID
        }
        stage('DEV: Install Dependencies') {
            sh 'npm install'
        }

        stage('${params.env}: Generate new users') {
            sh 'npm run generate:${params.env}'
            archiveArtifacts artifacts: '{params.env}-userids.txt', fingerprint: true
        }

. В настоящее время происходит сбой:

npm ERR! missing script: generate:{params.env}

1 Ответ

1 голос
/ 06 апреля 2020

Предположим, что вы хотите заменить ${params.env} значением при вызове npm?

Если это так, вам нужно использовать двойные кавычки ", чтобы Groovy знал, что вы будете делать шаблонные строки ... ie:

            sh "npm run generate:${params.env}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...