在 Azure Devops 上的 cURL 请求中使用环境变量

2023-12-22

我正在尝试使用 Azure DevOps 上的 cURL 通过命令行任务将 zip 文件上传到 Netlify。

显然我不想在 yaml 文件中包含 Netlify 访问令牌,因此我为它创建了一个秘密变量(使用 UI 设计器)并使用.

然而我不断收到来自 Netlify 的 401 回复。我可以通过 POSTMAN 确认访问令牌有效。所以我不确定我在这里做错了什么。我在请求中使用的环境变量是否不正确?

这是 YAML 文件中处理上传文件的部分。

- script:  >-
      curl
      -H 'Authorization: Bearer $env:ACCESS_TOKEN' 
      -H 'Content-Type: application/zip'
      --data-binary '@$(Build.BuildId).zip'
      https://api.netlify.com/api/v1/sites/$env:SITE_ID/deploys
  workingDirectory: '$(Build.ArtifactStagingDirectory)'
  displayName: 'Upload to Netlify'
  env: 
    ACCESS_TOKEN: $netlifyAccessToken
    SITE_ID: $netlifySiteId

来自 Netlify 的回复:

{"code":401,"message":"Access Denied: Origin returned bad status 401"}` 

EDIT:

下面是我使用 'input-macro' 语法设法让它工作后的完整 YAML 文件

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

variables:
  configuration: debug
  platform: x64

steps:
- task: DotNetCoreInstaller@0
  displayName: Install .NET Core SDK
  name: install_dotnetcore_sdk
  enabled: true
  inputs:
    packageType: 'sdk'
    version: '2.2.101'

- script: dotnet tool install -g Wyam.Tool
  displayName: Install Wyam

- script: wyam
  displayName: Build Site 

- task: ArchiveFiles@2
  displayName: Zip Site
  inputs:
    rootFolderOrFile: '$(Agent.BuildDirectory)/s/output' 
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' 
    replaceExistingArchive: true

- script:  >-
      curl
      -H 'Authorization: Bearer $(netlifyAccessToken)' 
      -H 'Content-Type: application/zip'
      --data-binary '@$(Build.BuildId).zip'
      https://api.netlify.com/api/v1/sites/$(netlifySiteId)/deploys
  workingDirectory: '$(Build.ArtifactStagingDirectory)'
  displayName: 'Upload to Netlify'

您需要使用 bash 语法来检索环境变量,而不是 powershell (因为您使用的是 bash,而不是 powershell):

-H "Authorization: Bearer $ACCESS_TOKEN"

我还怀疑您需要更新您的 env 声明:

env: 
  ACCESS_TOKEN: $(netlifyAccessToken) << ADO token to replace with variable from build scope
  SITE_ID: $(netlifySiteId)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Azure Devops 上的 cURL 请求中使用环境变量 的相关文章

随机推荐