作为 Azure DevOps 中发布管道的一部分,将更改推送到 GitHub 存储库
Posted
技术标签:
【中文标题】作为 Azure DevOps 中发布管道的一部分,将更改推送到 GitHub 存储库【英文标题】:Push changes to GitHub repository as a part of release pipeline in Azure DevOps 【发布时间】:2020-03-19 00:11:49 【问题描述】:我正在尝试创建一个发布管道:
-
更新 docker-compose.yml 中的 docker 映像,该映像是我的部署存储库的一部分
通过 SSH 将日志记录到我的服务器
[在我的远程服务器上] 获取最新的部署存储库
[在我的远程服务器上] 运行更新后的 docker-compose.yml
我坚持第 1 点。我设法让我的存储库可用,我更新了 docker-compose.yml 文件(通过 bash 脚本),我可以提交更改但不幸的是推送失败。
这是我的发布管道,其中包含两个工件:
-
我用来获取要发布的内部版本号的构建管道
我的 GitHub 存储库(因为我使用的是 2FA,所以我通过个人令牌链接它)
这是我的三个 bash 脚本的阶段 - 前两个正在更新 docker-compose.yml,第三个应该将更改提交到存储库并推送它。
这是我在运行该版本时得到的结果:
在执行 git push 时似乎存在一些身份验证问题,但我不知道如何解决这个问题。这个SO 表明这是在 git 端启用 2FA 的问题,但由于我使用个人访问令牌对 git 进行身份验证,因此不应使用 2FA。即使我按照 SO 中的建议将此行添加到我的脚本中:
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
它仍然失败并出现以下错误:
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
谁能指导我如何正确推送 git 存储库作为 Azure 发布管道的一部分?
【问题讨论】:
【参考方案1】:我找到了一个似乎可以解决我的问题的解决方法。我已从工件列表中删除了存储库,而是手动执行所有操作:
-
安装 SSH 密钥(通过本机安装 SSH 密钥任务)
使用 SSH 密钥(通过 Bash 脚本)克隆存储库
执行所有逻辑
清理存储库(不确定是否需要这样做,但为了安全起见...)
【讨论】:
您好朋友,非常感谢您分享这个解决方案。请mark your reply as answer,这将有助于其他社区成员更轻松地搜索此有用信息,这只是一个提醒:)以上是关于作为 Azure DevOps 中发布管道的一部分,将更改推送到 GitHub 存储库的主要内容,如果未能解决你的问题,请参考以下文章
Azure Databricks 的 Azure DevOps 管道
使用 ACR(天蓝色容器注册表)作为 Azure Devops json 管道的输入
无法使用服务主体从发布管道访问 Azure Devops Git 存储库