本教程将展示如何使用 TeamCity 运行构成构建管道重要基础的命令行脚本。
我们为演示创建了一个 GitHub 仓库:
github.com/marcobehlerjetbrains/buildpipelines. 请随意复刻并按照说明操作。
仓库有 2 个微服务:Authorization-Service 和 Calculator-Service。 您可以复制 URL,转到 TeamCity 服务,并从仓库 URL 创建新项目。 这是一个公共仓库,您无需输入任何密码或访问令牌。
在下一步中,TeamCity 将连接到仓库并从中创建一个项目。 它还会显示默认分支,这是 main 分支,每 60 秒就会拉取一次以包含任何更改,并触发构建。
您还可以使用通配符指定要监视的其他分支。
TeamCity 中的构建配置是一项作业。 设置项目时,TeamCity 将扫描仓库中的文件并自动检测构建步骤。
在本教程中,我们不会继续自动检测的构建步骤,因为我们有自己的命令行脚本要运行。 不过,值得注意的是,TeamCity 可以扫描项目的源 VCS 仓库并自动检测 Node.js、Kotlin、Python、Ant、NAnt、Gradle、Maven、MSBuild、Visual Studio 解决方案文件、PowerShell、Xcode 项目文件、Rake 和 IntelliJ IDEA 项目中的合适构建步骤。
要继续手动构建步骤配置,请点击此链接:
由于要运行命令行脚本,我们从下拉菜单中选择 Command Line(命令行)。
在下一步中,我们从下拉菜单选择 Run Custom Script(运行自定义脚本)选项,并将构建脚本粘贴到相应字段中。 我们将运行 mvn clean package
命令。 就像许多其他工具一样,我们的所有构建代理都已默认安装此软件包。
mvn clean package
将编译 Java 源、运行一些测试并创建 .jar
文件。
在部署步骤中,我们运行 AWS 命令行工具,然后将该 .jar
文件复制到私有 S3 存储桶。 然后,点击 Save(保存)。
点击 Run(运行)按钮之前,需要指定 AWS S3 存储桶的凭据:访问密钥 ID 和秘密访问密钥。 一种方式是在 TeamCity 中使用 Parameters(参数)。
为此,点击 Parameters | Add New Parameter(参数 | 添加新参数)。 现在,我们将使用一个环境变量。 输入名称,即 AWS_ACCESS_KEY_ID
。 您还需要选择新参数的类型(在本例中为 Environment variable (env.))并粘贴实际访问密钥 ID。
请注意:我们使用的访问密钥仅用于演示目的,您无法重用该密钥。
我们还想编辑参数并将类型设置为 Password(密码)。 这意味着 TeamCity 不仅会在 UI 中隐藏参数值,还会在日志消息和其他位置隐藏参数值。
然后,访问密钥 ID 将被遮盖。
同样,我们可以添加另一个环境变量:秘密访问密钥。 之后,我们就应该能够运行构建了。
为此,点击 Run(运行)按钮,这会将您重定向到概览页面。 当 TeamCity 运行构建时,它将显示构建日志,详细解释发生的情况。
在构建完成运行后,TeamCity 将显示构建状态和数据,例如构建何时触发、由谁触发、运行时长,以及使用了哪些构建代理。
因为我们使用的是命令行脚本,唯一有效的输出是构建日志。 如果我们决定使用特定 TeamCity 运行程序(例如 Maven 运行程序),我们还会开箱即可获得测试报告、覆盖率报告和许多其他功能,例如并行测试。
要访问构建日志,请点击构建结果输出页面中的 Build Log(构建日志)标签页。 TeamCity 让日志更易阅读! TeamCity 不会强制您将完整的构建日志下载到机器上(您仍然可以这样做),然后使用 Notepad++ 打开它,而是会收起构建日志并使其可以使用 Ctrl+F 轻松搜索。
今天的文章就到这里! 观看其他教程,了解如何使用 TeamCity 特定功能,例如测试报告或代码覆盖率报告。
构建快乐!
有关详情,请参阅 TeamCity 命令行文档。