Вот обходной путь.
Вы можете использовать событие до и после сборки для замены тега версии в файле environment.prod.ts
.
export const environment = { production: true, system: 'prod', version: '%VERSION%' };
установить npm-replace:
npm install replace --save-dev
package.json
"build:prod": "ng build --env=prod",
"prebuild:prod": "replace '%VERSION%' $VERSION src/environments/environment.prod.ts",
"postbuild:prod": "replace $VERSION '%VERSION%' src/environments/environment.prod.ts",
В jenkins выполните следующую команду
VERSION="$BUILD_NUMBER" npm run build:prod
Ссылка: Запрос: метод передачи переменных среды во время сборки или файла.
UPDATE
Другим способом достижения упомянутого поведения является использование утилиты sed
, предварительно установленной в Linux.
Вы можете выполнить следующие действия
Обновите environment.prod.ts
, чтобы иметь предопределенный ключ. Давайте предположим, что jenkinsBuildNO
. например,
export const environment = { production: true, system: 'prod', version: 'jenkinsBuildNO' };
Создайте еще один шаг в jenkins для обновления jenkinsBuildNO
в environment.prod.ts
номером сборки или чем-то другим.
sed -i -e 's/jenkinsBuildNO/%BUILD_NUMBER%/g' src/environments/environment.prod.ts
начать угловую сборку. ng buld --prod
Обновите номер сборки с помощью нашего предварительно определенного ключа jenkinsBuildNO
in
environment.prod.ts
sed -i -e 's/%BUILD_NUMBER%/jenkinsBuildNO/g' src/environments/environment.prod.ts