通过 Azure DevOps 将文件提交到远程 github 存储库

Posted

技术标签:

【中文标题】通过 Azure DevOps 将文件提交到远程 github 存储库【英文标题】:Commit a file to remote github repo through Azure DevOps 【发布时间】:2020-05-07 19:09:34 【问题描述】:

Azure DevOps 中的构建定义会生成一个 .ipa 文件(ios 应用文件)。我想将 Azure DevOps 生成的这个 .ipa 文件直接推送到远程 GitHub 存储库中。

【问题讨论】:

不建议在源代码管理中添加构建。您有更好的选择,例如将其发布到 Azure Devops Feed。如果您确实想这样做,您可以使用命令行任务或 powershell 任务运行 git 命令将文件推送到远程仓库。 【参考方案1】:

Azure DevOps 中的构建定义会生成一个 .ipa 文件(iOS 应用 文件)。我想推送这个由 Azure DevOps build 生成的 .ipa 文件, 直接进入远程 GitHub 存储库。

不推荐将构建输出添加到源代码管理中。如果您有特殊原因,可以在Command-line task 或Powershell Task 中运行 git 命令进行提交和推送。

我的工作步骤(我使用 Microsoft Windows 托管代理和一个公共 github 存储库):

1.查看构建任务日志获取Test.txt文件路径

2.在最后一个构建任务之后添加一个命令行任务,内容类似:

git clone https://github.com/xxx/TestUpload.git

git config --global user.email xxx@outlook.com

git config --global user.name xxx

copy "D:\a\1\s\xxx\Test.txt" TestUpload

cd TestUpload

git add .

git commit -m "Do sth."

git push https://UserName:UserPassword@github.com/xxx/TestUpload.git master

有关 git push 的更多详细信息,您可以查看this。而且由于我在 Windows 托管代理中运行管道,所以我需要先git clone 远程存储库。

另外,我不确定您是否在 Mac OS 代理中运行它,如果是,命令行任务仍然可供您使用。但您可能需要在 MacOS 中将脚本中的 copy xxxcd xxx 替换为 bash 语法。

其他方向:

如果您真正需要的是下载输出 xx.ipa 文件。考虑使用 Publish Build Artifacts task,您可以使用此任务复制构建输出并将其压缩到一个 xx.zip 文件中。构建管道成功后,您可以从Summary下载:

如果您想要在一个地方长期存储您的文件。考虑使用Azure Artifacts,您可以使用Universal Package 来托管文件。在本地机器或云构建管道中发布/下载包到/从提要很方便。

希望以上所有内容有所帮助,如果我有任何误解,请随时告诉我:)

【讨论】:

嗨 Lance,感谢您的回复,但我无法通过您与我共享的命令提交文件。所以我所做的就是在服务器上克隆 GitHub 存储库。我在此服务器上托管了一个代理,以便我的 Azure DevOps 任务可以与此服务器通信。现在我的 Azure DevOps 构建替换了服务器中本地 GitHub 存储库中的 IPA 文件,然后,我在 Azure DevOps 中创建了一个命令行任务,将 IPA 文件从本地 GitHub 存储库推送到远程 GitHub。存储库。 我在 Azure DevOps 命令行任务中使用的命令是: /* cd git status git add "modified filename" git commit -m "pushing IPA file from azure pipeline" "modified filename" git push */ 现在除了“git push”命令之外这些命令成功执行,因为 Azure DevOps 任务继续运行,并且在日志中显示提交命令消息后永不停止 我上面的cmets有意义吗? 看起来除了 git push 命令之外所有的都成功了,对吧?您是否在这里尝试过 shayki Abramczyk 关于git push 的回答? 谢谢。这解决了我与 git push 命令相关的问题。

以上是关于通过 Azure DevOps 将文件提交到远程 github 存储库的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps - 通过命令行将 git 提交或分支链接到工作项

如何通过 SSH 在 azure devops 管道复制文件中使用公钥

作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?

Azure Devops 在管道中找不到要复制到远程计算机的文件

如何在Azure DevOps中向管道中的远程分支发出拉取请求?

将代码推送回 Azure Devops 上的 TFVC 存储库