Azure Pipeline 将安全文件复制到构建文件夹中

Azure Pipeline Copy Secure file into build folder

我有一个 vite/svelte 项目,它使用 .env 文件进行环境设置。我还有一个 Azure Pipeline,其中包含一个安全文件 .env.staging,它位于相关存储库的 .gitignore 列表中。我想下载这个安全文件,将它复制到我的构建目录,然后在我 运行 vite build --mode staging 时读取它的内容(好吧,npm run build:staging 其中包括 vite 构建...)

当 运行 从我的机器 npm run build:staging 本地按预期工作并读取 .env.staging 文件时,但是在管道中使用时它似乎被忽略了,我做错了什么?

这是我的 yml。

trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

steps:

  - task: DownloadSecureFile@1
    name: "dotenvStaging"
    inputs:
      secureFile: '.env.staging'
    displayName: "Download .env.staging"

  - task: NodeTool@0
    inputs:
      versionSpec: 14.15.4
    displayName: "Install Node.JS"

  - task: CopyFiles@2
    inputs:
      contents: "$(Agent.TempDirectory)/.env.staging"
      targetFolder: "$(Agent.BuildDirectory)"
    displayName: "Import .env.staging"

  - script: npm install
    displayName: "npm install"

  - script: npm run build:staging
    displayName: "npm run build:staging"

  - task: ArchiveFiles@2
    inputs:
      rootFolderOrFile: 'dist'
      archiveType: 'zip'
      archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
      #replaceExistingArchive: true
      #verbose: # Optional
      #quiet: # Optional
    displayName: "Create archive"

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
      ArtifactName: 'drop'
      publishLocation: 'Container'
    displayName: "Publish archive"

我不确定 CopyFiles@2 是否在做我期望的事情,因为它只是匹配 content 参数来复制任何匹配的文件,如果我正在写它,它可能是 0错了...

另请注意,我也尝试使用 $(dotenvStaging.secureFilePath) 作为内容参数,但它似乎也没有做任何事情。

自然地,我一发布就明白了,我需要更新 CopyFiles 部分以指定 sourceFolder,显然它不喜欢我的内容的绝对文件路径。

  - task: CopyFiles@2
    inputs:
      sourceFolder: "$(Agent.TempDirectory)"
      contents: ".env.staging"
      targetFolder: "$(Agent.BuildDirectory)"
    displayName: "Import .env.staging"