通过 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 xxx
和 cd 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以上是关于通过 Azure DevOps 将文件提交到远程 github 存储库的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps - 通过命令行将 git 提交或分支链接到工作项
如何通过 SSH 在 azure devops 管道复制文件中使用公钥
作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?
Azure Devops 在管道中找不到要复制到远程计算机的文件