Node.js 根据不同部署(AzureDevOps/NodeJs)改变环境变量

Node.js 根据不同部署(AzureDevOps/NodeJs)改变环境变量,node.js,git,azure-devops,continuous-integration,environment-variables,Node.js,Git,Azure Devops,Continuous Integration,Environment Variables,我正在尝试使用azureDevOps建立一个CI/CD管道 这是我第一次尝试这样的事情;想法是在我的机器(devenv)上开发我的node/expressapi。一旦我推送Azure Repos上的主分支,CI管道就会启动。目前,该管道执行以下操作: 安装节点v12.x 安装npm模块 运行名为test:ci的npm命令 在工件中发布测试覆盖率和测试结果 运行一个名为compile的npm命令,该命令在build/文件夹中编译我的typescript代码 这就是我现在所处的位置,我想用我构建

我正在尝试使用azureDevOps建立一个CI/CD管道

这是我第一次尝试这样的事情;想法是在我的机器(devenv)上开发我的node/expressapi。一旦我推送Azure Repos上的主分支,CI管道就会启动。目前,该管道执行以下操作:

  • 安装节点v12.x
  • 安装npm模块
  • 运行名为test:ci的npm命令
  • 在工件中发布测试覆盖率和测试结果
  • 运行一个名为compile的npm命令,该命令在build/文件夹中编译我的typescript代码
这就是我现在所处的位置,我想用我构建的应用程序创建一个Docker容器,然后在我的prod服务器上用它做一些事情。这里是我的问题,我的DEV env中有一个.env文件,并且该文件不是用git推送的。如何在构建过程中设置新的.env文件?是否有一种超级智能的方法可以做到这一点,或者我只需要设置一个节点脚本,在构建时基于.env.example文件创建.env文件

谢谢

您可以使用轻松地将.env文件包含在构建管道中。您可以参考以下步骤

1,将您的.env文件作为安全文件上载到azure devops

在您的项目中,转到下的管道-->单击安全文件-->单击+安全文件将.env文件上载到azure devops

单击3dots,然后选择编辑,启用授权在所有管道中使用

2、在azure devops管道中使用.env文件。你需要使用

下载.env文件后,可以使用任务上设置的名称值(或经典编辑器中的“引用名称”)引用代理计算机上.env文件的路径。例如,如果任务名为myEnvFile,则其路径可以在管道中引用为
$(myEnvFile.secureFilePath)
(下载到$(Agent.TempDirectory))

3,您可以添加复制文件任务,将下载的.env文件复制到源代码文件夹中(例如
$(Build.SourcesDirectory)

然后.env文件将在构建运行时可用。 希望以上帮助

您可以使用轻松地将.env文件包含在构建管道中。您可以参考以下步骤

1,将您的.env文件作为安全文件上载到azure devops

在您的项目中,转到下的管道-->单击安全文件-->单击+安全文件将.env文件上载到azure devops

单击3dots,然后选择编辑,启用授权在所有管道中使用

2、在azure devops管道中使用.env文件。你需要使用

下载.env文件后,可以使用任务上设置的名称值(或经典编辑器中的“引用名称”)引用代理计算机上.env文件的路径。例如,如果任务名为myEnvFile,则其路径可以在管道中引用为
$(myEnvFile.secureFilePath)
(下载到$(Agent.TempDirectory))

3,您可以添加复制文件任务,将下载的.env文件复制到源代码文件夹中(例如
$(Build.SourcesDirectory)

然后.env文件将在构建运行时可用。 希望以上帮助

- task: DownloadSecureFile@1
  name: myEnvFile
  displayName: 'Download .env file'
  inputs:
    secureFile: '.env'
- task: CopyFiles@2
    inputs:
      SourceFolder: $(Agent.TempDirectory)
      Contents: '**\.env'
      TargetFolder: $(Build.SourcesDirectory)