DevOps Azure обновляет переменную внутри кода перед развертыванием - PullRequest
5 голосов
/ 25 октября 2019

Возможно ли в AzO DevOps обновить часть моего кода при запуске релиза?

Например, у меня есть файл настроек внутри моего приложения реагирования. Этот файл настроек содержит export const ISPROD = false. Мне нужны DevOps Azure, чтобы изменить это ложное значение на true, прежде чем оно создаст приложение реагирования и развернет его. Это возможно?

Примечание. Сборка "Мой сервер" - Linux.

Ответы [ 4 ]

3 голосов
/ 25 октября 2019

Поскольку вы работаете в Linux, вы можете просто добавить задачу bash или сценарий оболочки в свою сборку и добавить встроенный сценарий или путь к сценарию в своем репо, который выполняетобновление настроек.

Вам нужно взглянуть на доступные переменные среды в вашем конвейере, которые вы можете использовать в своем скрипте для доступа к рабочему каталогу вашего кода.

При желании можно указать условия , при которых выполняется задача. Например, я делаю нечто очень похожее при создании версий наших компонентов для выпуска, которые выполняются только во время сборок, запускаемых тегом git.

2 голосов
/ 25 октября 2019

Вот бесплатная задача Visual Studio Marketplace Pipeline, которая сделает свое дело: Замена текста в исходных файлах

Это также будет работать: Задача сборки RegexReplace

1 голос
/ 25 октября 2019

Вы можете обновить свой код в файлах javascript, используя задачу « Заменить токены », например:

- task: replacetokens@3
    inputs:
      targetFiles: "yourJavascriptFile.js"
      encoding: "auto"
      writeBOM: true
      verbosity: "detailed"
      actionOnMissing: "warn"
      keepToken: false
      tokenPrefix: "#{"
      tokenSuffix: "}#"
    displayName: Perform variable substitution in javascript file file

Вы добавили бы эту задачу перед задачей, которую используете для создания приложения. .

В вашем javascript-файле вы записали бы переменные, которые должны быть заменены, например,

export const ISPROD = #{IS_PROD}#

Эта задача при запуске затем заменит "# {IS_PROD} #" на вашу переменную Azure Devops с именем«IS_PROD» с его значением, установленным как true.

1 голос
/ 25 октября 2019

Если вы хотите создать собственное решение, вам может помочь следующее:

  1. Перейти к задаче Bash в лазурном конвейере
  2. В шагах Yaml определите встроенный пример: шаги:
    • task: Bash @ ReplaceTextInFile: input: targetType: 'inline' script: bashscript
  3. использовать команду sed для замены текста в вашем файле.
...