如何运行命令行脚本

本教程将展示如何使用 TeamCity 运行构成构建管道重要基础的命令行脚本。

我们为演示创建了一个 GitHub 仓库:

github.com/marcobehlerjetbrains/buildpipelines. 请随意复刻并按照说明操作。

仓库有 2 个微服务:Authorization-ServiceCalculator-Service。 您可以复制 URL,转到 TeamCity 服务,并从仓库 URL 创建新项目。 这是一个公共仓库,您无需输入任何密码或访问令牌。

tutorials-img

在下一步中,TeamCity 将连接到仓库并从中创建一个项目。 它还会显示默认分支,这是 main 分支,每 60 秒就会拉取一次以包含任何更改,并触发构建。

您还可以使用通配符指定要监视的其他分支。

tutorials-img

在 TeamCity 中设置构建配置

TeamCity 中的构建配置是一项作业。 设置项目时,TeamCity 将扫描仓库中的文件并自动检测构建步骤。

tutorials-img

在本教程中,我们不会继续自动检测的构建步骤,因为我们有自己的命令行脚本要运行。 不过,值得注意的是,TeamCity 可以扫描项目的源 VCS 仓库并自动检测 Node.js、Kotlin、Python、Ant、NAnt、Gradle、Maven、MSBuild、Visual Studio 解决方案文件、PowerShell、Xcode 项目文件、Rake 和 IntelliJ IDEA 项目中的合适构建步骤。

配置构建步骤

要继续手动构建步骤配置,请点击此链接:

tutorials-img

由于要运行命令行脚本,我们从下拉菜单中选择 Command Line(命令行)。

tutorials-img

在下一步中,我们从下拉菜单选择 Run Custom Script(运行自定义脚本)选项,并将构建脚本粘贴到相应字段中。 我们将运行 mvn clean package 命令。 就像许多其他工具一样,我们的所有构建代理都已默认安装此软件包。

mvn clean package 将编译 Java 源、运行一些测试并创建 .jar 文件。

在部署步骤中,我们运行 AWS 命令行工具,然后将该 .jar 文件复制到私有 S3 存储桶。 然后,点击 Save(保存)。

tutorials-img

点击 Run(运行)按钮之前,需要指定 AWS S3 存储桶的凭据:访问密钥 ID 和秘密访问密钥。 一种方式是在 TeamCity 中使用 Parameters(参数)。

添加参数

为此,点击 Parameters | Add New Parameter(参数 | 添加新参数)。 现在,我们将使用一个环境变量。 输入名称,即 AWS_ACCESS_KEY_ID。 您还需要选择新参数的类型(在本例中为 Environment variable (env.))并粘贴实际访问密钥 ID。

请注意:我们使用的访问密钥仅用于演示目的,您无法重用该密钥。

tutorials-img

我们还想编辑参数并将类型设置为 Password(密码)。 这意味着 TeamCity 不仅会在 UI 中隐藏参数值,还会在日志消息和其他位置隐藏参数值。

tutorials-img

然后,访问密钥 ID 将被遮盖。

tutorials-img

同样,我们可以添加另一个环境变量:秘密访问密钥。 之后,我们就应该能够运行构建了。

为此,点击 Run(运行)按钮,这会将您重定向到概览页面。 当 TeamCity 运行构建时,它将显示构建日志,详细解释发生的情况。

tutorials-img

在构建完成运行后,TeamCity 将显示构建状态和数据,例如构建何时触发、由谁触发、运行时长,以及使用了哪些构建代理。

tutorials-img

因为我们使用的是命令行脚本,唯一有效的输出是构建日志。 如果我们决定使用特定 TeamCity 运行程序(例如 Maven 运行程序),我们还会开箱即可获得测试报告、覆盖率报告和许多其他功能,例如并行测试。

访问构建日志

要访问构建日志,请点击构建结果输出页面中的 Build Log(构建日志)标签页。 TeamCity 让日志更易阅读! TeamCity 不会强制您将完整的构建日志下载到机器上(您仍然可以这样做),然后使用 Notepad++ 打开它,而是会收起构建日志并使其可以使用 Ctrl+F 轻松搜索。

tutorials-img

今天的文章就到这里! 观看其他教程,了解如何使用 TeamCity 特定功能,例如测试报告或代码覆盖率报告。

构建快乐!

有关详情,请参阅 TeamCity 命令行文档