我有一个管道和一个 azure-pipelines.yml 来驱动我的构建,这需要 PAT 才能使构建脚本使用 nuget 推送工件,通过使用“nuget 源添加..”这有效!但我的 PAT 在脚本中,这很糟糕,并且 PAT 最终会过期,所以我宁愿使用 $(System.AccessToken),但我无法让它工作,似乎有很多相关问题,但我根本不明白我没有做什么。
这是工作 yaml(带有假 PAT)
name: $(Rev:r)
trigger:
- master
jobs:
- job: Windows
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@1
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '3.1.201'
- script: dotnet tool restore
displayName: Install FAKE
- script: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/..../index.json -username anything -password thisismypat
displayName: nuget add source
- script: dotnet fake build
displayName: Run Build
Run Code Online (Sandbox Code Playgroud)
并使用 $(System.AccessToken)
我做这个?将硬编码的 pat 替换为环境变量 %SYSTEM_ACCESSTOKEN% (您必须滚动到最右侧才能看到),但这失败了!
name: $(Rev:r)
trigger:
- master
jobs:
- job: Windows
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@1
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '3.1.201'
- script: dotnet tool restore
displayName: Install FAKE
- script: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/Kookerella2/_packaging/Kookerella2/nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: nuget add source
- script: dotnet fake build
displayName: Run Build
Run Code Online (Sandbox Code Playgroud)
我是不是在做蠢事?
根据我尝试使用的反馈
$env:SYSTEM_ACCESSTOKEN
Run Code Online (Sandbox Code Playgroud)
这失败了(我很确定脚本默认为命令提示符)。
然后我尝试了
- powershell: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/Kookerella2/_packaging/Kookerella2/nuget/v3/index.json -username anything -password $env:SYSTEM_ACCESSTOKEN
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Run Code Online (Sandbox Code Playgroud)
在构建中的 nuget 推送中失败了
Response status code does not indicate success: 403 (Forbidden - User '123a17e0-1d16-4a98-a124-435fda808ac6' lacks permission to complete this action. You need to have 'AddPackage'. (DevOps Activity ID: 4CCE5D91-5279-4782-BF9F-00279A087C6E)).
Run Code Online (Sandbox Code Playgroud)
我有
“项目集合构建服务(Kookerella2)-> 贡献者”
在我的工件权限下设置
解决方案标记如下。总结是...原始 YAML 没有任何问题,%SYSTEM_ACCESSTOKEN% 对于命令提示符有效,并且可以工作...一旦您在工件的权限中“允许项目范围内的构建”(见下文)。为什么?我不知道……但那是一种奢侈。
在构建中的 nuget 推送中失败,响应状态代码并不表示成功:403(禁止
要解决此问题,您可以尝试检查您是否有Your project Build Services. 默认情况下,当您在 AzureDevOps 项目上创建基于 Artifacts 的 Feed 时,它仅具有以下权限,Project collection Build Service但不具有以下权限your project Build Services:
您可以查看此线程以获取更多详细信息。
| 归档时间: |
|
| 查看次数: |
19414 次 |
| 最近记录: |