我正在使用 TeamCity 进行构建的项目。
我有一个虚拟机,并编写了一个 PowerShell 脚本来备份一些文件,打开一个我从 TeamCity 手动下载的 ZIP 工件,然后将其复制到我的虚拟机。
我想通过检索 ZIP 工件(始终具有相同的名称)来增强我的脚本。
问题是下载路径包含始终在变化的内部版本号。除了请求 ZIP 工件的下载路径之外,我真的不在乎它是什么。
一个示例工件路径可能是:
http://{server}/repository/download/{project}/{build_number}:id/{project}.zip
TeamCity 中有一个“最后成功的构建”页面,我可能可以从中获取内部版本号。
您认为解决这个问题的最佳方法是什么?
我是 TeamCity 的新手,但答案也可能是“TeamCity 执行此操作 - 您不需要 PowerShell 脚本”。因此,这方面的指导会有所帮助。
目前,我的 PowerShell 脚本可以做到这一点,并且只需要大约 30 秒即可运行(这比手动复制所有文件的同行要快得多)。我会很高兴仅自动化 ZIP 下载,这样我就可以“触发并忘记”我的脚本并最终得到一个更新的 VM。
似乎是在运行时使用 PowerShell 填补和检索变化的路径信息的最小知识差距似乎是一项相当不错的技能。
我可能只是在 PS 中使用 C# 来收集这些信息,但我希望有一种更 PS 的方式来做到这一点。
提前感谢您的想法和建议!
更新:事实证明,其他一些团队一直在使用 Octopus Deploy ( https://octopus.com/ ) 来完成这类事情,所以我现在正在使用它——尽管它实际上似乎比整体 PS 解决方案更麻烦,因为它涉及登录到 Octopus 服务器并通过几个步骤在此时手动启动新构建。
我也在等待 TC 管理员提供一个 Webhook 或其他东西,以便在有新版本可用时通知 Octopus。一旦我有了这个,八达通管理员说我们应该能够让部署自动发生。
从好的方面来说,我确实通过可用于 Octopus 的 webhook 插件将构建过程与 Microsoft Teams 集成。此外,Octopus 的开发人员正在考虑制作 Microsoft Teams 连接器来简化此操作。很高兴在我的团队聊天中收到新版本可用的通知。