Как получить Jenkins BUILD_NUMBER в JavaScript с помощью GULP / NODE? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть задание gulp getBuildNumber , которое использует Дочерний процесс для выполнения сценария.

gulp.task('getBuildNumber', function() {
        var buildNumber = child_process.execSync("echo $BUILD_NUMBER").toString().trim();
        console.log(buildNumber);
    });

Когда я запускаю следующую команду для gulp

npm run gulp -- getBuildNumber

Я всегда получаю вывод как $BUILD_NUMBER, а не фактический номер сборки Jenkins.

Может кто-нибудь подсказать, пожалуйста, как поступить с этим?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Согласно https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback, вам нужно экранировать специальные символы:

exec('echo "The \\$HOME variable is $HOME"');

В вашем случае это означает, что вам нужно использовать

[...]child_process.execSync("echo \\$BUILD_NUMBER").toString().trim();[...]
                                  ^^
0 голосов
/ 15 октября 2018

Вы можете получить доступ к переменным окружения с помощью process.env.

Например:

console.log(process.env.BUILD_NUMBER);
...