昨天,当 Helm 升级在 Azure DevOps 中的发布管道上运行时,我停止了 Helm 升级,并且以下部署失败。
\n我试图查看失败的图表,目的是删除它,但微服务(“auth”)的图表没有出现。我使用命令 \xc2\xabhelm list -n [namespace_of_AKS]\xc2\xbb 但它没有出现。
\n我可以做什么来解决这个问题?
\nAzure 发布管道中出现错误
\n2022-03-24T08:01:39.2649230Z Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress\n2022-03-24T08:01:39.2701686Z ##[error]Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress\nRun Code Online (Sandbox Code Playgroud)\n\n kubernetes azure-devops azure-pipelines kubernetes-helm azure-aks
我刚刚开始使用 Azure DevOps 管道,并使用 Maven 任务创建了一个非常简单的管道。现在我不关心并行性,并且不确定以何种方式将其添加到我的管道中。有没有办法在免费层上使用 Maven 任务而无需并行?
这是我的管道:
trigger:
- master
pool:
vmImage: ubuntu-latest
steps:
- task: Maven@3
Run Code Online (Sandbox Code Playgroud)
我的想法是任务总是并行的?除此之外我看不出并行步骤在哪里。
我正在使用TFS 2015设置新的构建服务器,在配置代理之后,当我尝试对构建进行排队时,我收到了以下错误:
找不到具有以下功能的代理:msbuild,visualstudio,vstest
怎么解决这个问题?
理想情况下,我想使用构建变量(在VSTS上)配置我们的Azure Web App应用程序设置,例如:
我们使用Powershell脚本执行发布任务.要设置应用程序设置,可以使用以下脚本:
param($websiteName, $appSettings)
Set-AzureWebsite -Name $websiteName -AppSettings $appSettings
Run Code Online (Sandbox Code Playgroud)
我可以手动将这些构建变量传递给Powershell脚本构建任务,如下所示:
PrepareAppSettings.ps1 -websiteName "MyWebApp" -appsettings @{"MyConnectionString" = $(MyConnectionString);"MyRandomService" = $(MyRandomService);"MyRandomServiceClient"=$(MyRandomServiceClient);"MyRandomServicePassword"=$(MyRandomServicePassword)}
Run Code Online (Sandbox Code Playgroud)
有没有办法将所有构建变量传递给脚本而不必在哈希表中显式指定每个变量?
我想弄清楚如何在我的脚本中跨 ADO 管道共享自定义变量。以下是我的脚本,分为 2 个阶段。
我将 设置curProjVersion为输出变量并尝试从不同的阶段访问它。我做得对吗?
stages:
- stage: Build
displayName: Build stage
jobs:
- job: VersionCheck
pool:
vmImage: 'ubuntu-latest'
displayName: Version Check
continueOnError: false
steps:
- script: |
echo "##vso[task.setvariable variable=curProjVersion;isOutput=true]1.4.5"
name: setCurProjVersion
displayName: "Collect Application Version ID"
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
variables:
curProjVersion1: $[ dependencies.Build.VersionCheck.outputs['setCurProjVersion.curProjVersion'] ]
jobs:
- job:
steps:
- script: |
echo $(curProjVersion1)
Run Code Online (Sandbox Code Playgroud) 我有几个 CI 管道,我在 Azure DevOps 中使用它们来构建一些 Xamarin 应用程序,我想创建一个新的管道来合并两个现有管道的功能。有没有办法复制或克隆现有管道,以便我可以在不影响现有管道的情况下对新管道进行更改?
我看到我可以将管道导出到 JSON 文件,然后将其重新导入。 JSON 文件中的所有 id 值都是 GUID。导入过程会创建新的 GUID,还是会导入 JSON 文件覆盖现有管道。
我收到一个错误:
User XXX lacks permission to complete this action. You need to have 'AddPackage'
Run Code Online (Sandbox Code Playgroud)
尝试将 nuget 包推送到 Azure DevOps 工件时。我是管理员 这是阶段:
- stage:
displayName: 'Release'
condition: succeeded()
jobs:
- job: 'Publish'
displayName: 'Publish nuGet Package'
steps:
- download: current
artifact: $(PIPELINE_ARTIFACT_NAME)
displayName: 'Download pipeline artifact'
- script: ls $(PATH_PIPELINE_ARTIFACT_NAME)
displayName: 'Display contents of downloaded articacts path'
- task: NuGetAuthenticate@0
displayName: 'Authenticate in NuGet feed'
- script: dotnet nuget push $(PATH_PIPELINE_ARTIFACT_NAME)/**/*.nupkg --source $(NUGET_FEED) --api-key $(NUGET_API_KEY)
displayName: 'Uploads nuGet packages'
Run Code Online (Sandbox Code Playgroud)
和确切的错误:
error: …Run Code Online (Sandbox Code Playgroud) 除了变量组之外,我还尝试将 2 个值之一分配给变量,但找不到有关如何使用 IF ELSE 的参考。
基本上我需要将这个 jerkins 逻辑转换为 azure DevOps。
詹金斯
if (branch = 'master') {
env = 'a'
} else if (branch = 'dev'){
env ='b'
}
Run Code Online (Sandbox Code Playgroud)
我从下一个中找到了 1 个参考,但是如果变量部分没有变量组,这个参考似乎有效。
但是在我的管道中,我已经有一个用于秘密的变量组,所以我必须使用名称/值约定,并且该示例不适用于诸如expected a mappingorA mapping was not expected或 or 之类的错误Unexpected value 'env'
variables:
- group: my-global
- name: env
value:
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
env: a
${{ if eq(variables['Build.SourceBranchName'], 'dev') }}:
env: b
Run Code Online (Sandbox Code Playgroud)
或者
variables:
- group: my-global
- name: env
value: …Run Code Online (Sandbox Code Playgroud) 我注意到PublishPipelineArtifact任务的存在,但我不清楚与旧的PublishBuildArtifacts任务是否有任何功能差异?
我们正在从本地构建服务器迁移到 Azure Pipelines。我们生产“收缩包装”桌面软件,因此很明显我们需要在发布之前对所有二进制文件进行签名。我们当前的构建基础架构使用 GlobalSign 的 USB 硬件令牌来完成此操作,但显然,当我们进行云构建时,这将不起作用 - 遗憾的是,云没有配备 USB 端口:D
现在,GlobalSign 最近开始宣传Azure Key Vault 作为密钥存储选项,他们非常乐意将其出售给我们,但我不确定我们实际上如何将其与我们的构建管道集成(或者确实是这样)甚至可能)。
有没有人真正做过这项工作?
azure-pipelines ×10
azure-devops ×8
tfs ×2
azure ×1
azure-aks ×1
kubernetes ×1
nuget ×1
powershell ×1
tfs-2015 ×1