переменные среды для разных развертываний (AzureDevOps / NodeJs) - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь установить конвейер CI / CD, используя azureDevOps.

Я впервые пытаюсь что-то подобное; идея состоит в том, чтобы мой нод / express API разрабатывался на моей машине (DEV env). Как только у меня появится pu sh в главной ветке на Azure Repos, конвейер CI запустится. В настоящий момент этот конвейер выполняет следующие действия:

  • Установить узел v12.x
  • Установить npm modules
  • Выполнить команду npm с именем test: ci
  • Publi sh в покрытии и результатах теста Artifacts
  • Запустите команду npm с именем compile, которая компилирует мой машинописный код в папку build /

Вот где я сейчас нахожусь, я хотел бы создать контейнер Docker со своим встроенным приложением, а затем сделать что-то с ним на моем сервере prod. Здесь возникает мой вопрос, у меня есть файл .env в моем DEV env, и этот файл не помещается с git. Как мне настроить в процессе сборки новый файл .env? Есть ли супер-умный способ сделать это, или я просто должен настроить скрипт узла, который будет создавать файл .env во время сборки на основе файла .env.example?

Спасибо!

1 Ответ

1 голос
/ 24 февраля 2020

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

1, загрузить свой файл .env в azure devops в качестве защищенного файла.

В вашем проекте go - Библиотека в Конвейеры -> Нажмите Защищенные файлы -> Нажмите + Защищенный файл , чтобы загрузить файл .env в azure devops.

enter image description here

Нажмите 3 точки и выберите Редактировать , Enble Авторизоваться для использования во всех трубопроводах

enter image description here

2, используйте файл .env в azure devops pipe. Вам нужно использовать Загрузить задачу «Защищенный файл»

После загрузки файла .env вы можете использовать значение имени, заданное в задаче (или «Ссылочное имя» в классе c редактор) для ссылки на путь к файлу .env на машине агента. Например, если задаче присвоено имя myEnvFile, на ее путь в конвейере можно ссылаться как $(myEnvFile.secureFilePath) (она загружается в $ (Agent.TempDirectory)).

- task: DownloadSecureFile@1
  name: myEnvFile
  displayName: 'Download .env file'
  inputs:
    secureFile: '.env'

3, вы можете добавить задачу копирования файла, чтобы скопировать загруженный файл .env в папку с исходным кодом (например, $(Build.SourcesDirectory))

- task: CopyFiles@2
    inputs:
      SourceFolder: $(Agent.TempDirectory)
      Contents: '**\.env'
      TargetFolder: $(Build.SourcesDirectory)

Затем .env файл будет доступен во время сборки. Надеюсь, что выше помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...