Как получить Jenkins BUILD_NUMBER в JavaScript с помощью GULP / NODE?

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

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

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

npm run gulp -- getBuildNumber

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

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 121
2

Ответы 2

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

Например:

console.info(process.env.BUILD_NUMBER);

это не работает для меня. Он дает только все подробности npm и не дает подробностей о Дженкинсе. Итак, process.env.BUILD_NUMBER не определен

Siddarth 15.10.2018 14:41

@Siddarth В этом случае переменные среды установлены неправильно. BUILD_NUMBER должен быть установлен Jenkins: wiki.jenkins.io/display/JENKINS/…

James Monger 15.10.2018 14:57

В jenkins я попробовал echo $BUILD_NUMBER, и я получил правильный вывод номера сборки, и я попытался распечатать process.env в задаче gulp, и он не выбирает переменные среды jenkins. Вот мой код gulp.task('version:up', function() { console.info(process.env); var buildNumber = process.env.BUILD_NUMBER; if (buildNumber === undefined) { buildNumber = new Date().getTime(); } console.info(buildNumber); });

Siddarth 15.10.2018 15:39

Согласно 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();[...]
                                  ^^

Другие вопросы по теме