练习 - 创建并运行基本工作流
重要
需要自己的 Azure 订阅才能运行此练习,这可能会产生费用。 如果还没有 Azure 订阅,请在开始前创建一个免费帐户。
你需要自动将更新部署到玩具公司的网站。 首先,需要在 GitHub Actions 中创建一个基本工作流。
通过学习本练习,你将能够:
- 创建 GitHub 帐户和存储库。
- 创建基本工作流。
- 执行基本工作流。
在 GitHub 中创建存储库
在浏览器中,转到 GitHub。 使用 GitHub 帐户进行登录,如果没有帐户,请创建一个新帐户。
选择窗口右上角的加号 (+) 图标,然后选择“新建存储库”。
输入新存储库的详细信息:
- 所有者:从下拉菜单中选择你的 GitHub 用户名。 在屏幕截图中,
mygithubuser
是存储库所有者的 GitHub 帐户名称。 你将在本模块的后面部分中使用帐户名称。 - 存储库名称:输入简短但有意义的名称。 对于本模块,请使用
toy-website-workflow
。 - 说明:包含说明以帮助其他人了解存储库的用途。
- 专用:可以使用 GitHub 创建公共和专用存储库。 创建专用存储库,因为只有组织内部人员才应访问玩具网站的文件。 可以稍后向其他人授予访问权限。
完成后,存储库配置应如以下屏幕截图所示:
- 所有者:从下拉菜单中选择你的 GitHub 用户名。 在屏幕截图中,
选择“创建存储库”。
克隆存储库
在 Visual Studio Code 中,克隆存储库。
在存储库页上,选择“复制”按钮,将 URL 复制到 Git 存储库。
打开 Visual Studio Code。
选择“终端”>“新建终端”,打开 Visual Studio Code 终端窗口。 此窗口通常会在屏幕底部打开。
在终端中,导航到要在本地计算机上克隆 GitHub 存储库的目录。 例如,若要将存储库克隆到 toy-website-workflow 文件夹,请运行以下命令:
cd toy-website-workflow
键入
git clone
并粘贴之前复制的 URL,如下所示:git clone https://github.com/mygithubuser/toy-website-workflow
你将收到一条警告,指出你克隆了一个空存储库。 可以忽略该消息。
这是你首次使用此存储库,因此系统会提示你登录。
在Windows 上,键入 1 以使用 Web 浏览器进行身份验证,然后选择 Enter。
在 macOS 上,选择“授权”。
将会出现一个浏览器窗口。 你可能需要再次登录到 GitHub。 选择“授权”。
通过运行以下命令,在存储库文件夹中重新打开 Visual Studio Code:
code -r toy-website-workflow
提示
你还可以使用 GitHub Web 用户界面来编辑 GitHub Actions 工作流定义。 当你打开工作流定义时,GitHub 可帮助你了解 YAML 文件语法和缩进,并提供你可能要使用的操作的示例代码片段。 在本模块中,你将在 Visual Studio Code 中使用定义文件,但你可以探索 GitHub 编辑器,了解其工作原理。
创建 YAML 工作流定义
现在你已创建并克隆存储库,接下来可以创建一个基本工作流定义。
在 Visual Studio Code 中,打开“资源管理器”。
在 toy-website-workflow 文件夹的根目录下,创建一个名为“.github”的新文件夹。
注意
请确保在文件夹名称的开头添加时间段。 它表示这是一个隐藏文件夹,GitHub 需要 GitHub Actions 检测工作流定义所用的时间段。
在“.github”文件夹中,创建另一个名为“workflows”的文件夹。
在“workflows”文件夹中,创建一个名为“workflow.yml”的新文件。
将以下工作流定义复制到文件中:
name: deploy-toy-website on: [workflow_dispatch] jobs: say-hello: runs-on: ubuntu-latest steps: - name: 'placeholder step' run: echo "Hello world!"
保存文件。
使用以下命令提交文件并将其推送到 GitHub 存储库:
git add . git commit -m "Add initial workflow definition" git push
提示
Visual Studio Code 可帮助你处理 YAML 文件缩进。 查找指示语法错误的波浪线,或选择“查看”>“问题”,可以查看文件中的问题列表。
运行工作流
你已经创建了一个工作流定义。 GitHub Actions 会自动检测工作流文件,因为它位于 .github/workflows 目录中。
在浏览器中导航到存储库。 可能需要刷新页面才能看到所做的更改。
选择“操作”选项卡。
选择 deploy-toy-website 工作流。
选择“运行工作流”下拉菜单,然后选择“运行工作流”按钮。
工作流会开始运行。 这可能需要几分钟时间,你可以刷新页面,不过它应自动刷新,并显示已排队、正在运行,甚至是已完成的工作流运行。
请注意,运行状态最初显示为“已排队”。 工作流可能需要一些时间才能启动。 作业被添加到运行程序的队列中,一旦有运行程序可用,GitHub Actions 就会分配运行程序并启动作业。 然后作业状态变为“正在执行”。
每个工作流运行都包含一个标识符。 当你需要引用工作流运行和帮助查找特定工作流运行时,可以使用此标识符。
验证工作流运行
工作流运行启动后,选择 deploy-toy-website 可查看运行的详细信息。 刷新页面,直到作业状态显示“成功”。
另外,请注意该页面包括相关运行所使用的 Git 提交的标识符。 提交的标识符表示工作流使用的存储库内容的版本。
在作业列表中,选择“say-hello”。
作业信息页随即出现,其中显示了工作流为你运行的步骤的日志。 请注意,你的“占位符步骤”已包括在内。
请注意,此列表包含未指定的步骤。 这些步骤由 GitHub Actions 自动创建。
选择“占位符步骤”。
此步骤的日志包括工作流的 YAML 文件中指定的命令内容,以及脚本发出的“Hello world!”文本。
将工作流执行链接到提交
建议了解如何将工作流运行交叉引用到运行所包含的提交。 将工作流执行链接到提交有助于跟踪部署历史记录并诊断问题。
选择“摘要”,返回到运行摘要。
选择提交标识符。 GitHub 会显示触发了工作流运行的提交的详细信息。