练习 - 创建并运行基本工作流

已完成

重要

需要自己的 Azure 订阅才能运行此练习,这可能会产生费用。 如果还没有 Azure 订阅,请在开始前创建一个免费帐户

你需要自动将更新部署到玩具公司的网站。 首先,需要在 GitHub Actions 中创建一个基本工作流。

通过学习本练习,你将能够:

  • 创建 GitHub 帐户和存储库。
  • 创建基本工作流。
  • 执行基本工作流。

在 GitHub 中创建存储库

  1. 在浏览器中,转到 GitHub。 使用 GitHub 帐户进行登录,如果没有帐户,请创建一个新帐户。

  2. 选择窗口右上角的加号 (+) 图标,然后选择“新建存储库”。

    Screenshot of the GitHub interface that shows the menu for creating a new repository.

  3. 输入新存储库的详细信息:

    • 所有者:从下拉菜单中选择你的 GitHub 用户名。 在屏幕截图中,mygithubuser 是存储库所有者的 GitHub 帐户名称。 你将在本模块的后面部分中使用帐户名称。
    • 存储库名称:输入简短但有意义的名称。 对于本模块,请使用 toy-website-workflow
    • 说明:包含说明以帮助其他人了解存储库的用途。
    • 专用:可以使用 GitHub 创建公共和专用存储库。 创建专用存储库,因为只有组织内部人员才应访问玩具网站的文件。 可以稍后向其他人授予访问权限。

    完成后,存储库配置应如以下屏幕截图所示:

    Screenshot of the GitHub interface showing the configuration for the repository to create.

  4. 选择“创建存储库”。

克隆存储库

在 Visual Studio Code 中,克隆存储库。

  1. 在存储库页上,选择“复制”按钮,将 URL 复制到 Git 存储库。

    Screenshot of the GitHub interface showing the new empty repository, with the repository URL copy button highlighted.

  2. 打开 Visual Studio Code。

  3. 选择“终端”>“新建终端”,打开 Visual Studio Code 终端窗口。 此窗口通常会在屏幕底部打开。

  4. 在终端中,导航到要在本地计算机上克隆 GitHub 存储库的目录。 例如,若要将存储库克隆到 toy-website-workflow 文件夹,请运行以下命令:

    cd toy-website-workflow
    
  5. 键入 git clone 并粘贴之前复制的 URL,如下所示:

    git clone https://github.com/mygithubuser/toy-website-workflow
    

    你将收到一条警告,指出你克隆了一个空存储库。 可以忽略该消息。

  6. 这是你首次使用此存储库,因此系统会提示你登录。

    在Windows 上,键入 1 以使用 Web 浏览器进行身份验证,然后选择 Enter

    在 macOS 上,选择“授权”。

  7. 将会出现一个浏览器窗口。 你可能需要再次登录到 GitHub。 选择“授权”。

  8. 通过运行以下命令,在存储库文件夹中重新打开 Visual Studio Code:

    code -r toy-website-workflow
    

提示

你还可以使用 GitHub Web 用户界面来编辑 GitHub Actions 工作流定义。 当你打开工作流定义时,GitHub 可帮助你了解 YAML 文件语法和缩进,并提供你可能要使用的操作的示例代码片段。 在本模块中,你将在 Visual Studio Code 中使用定义文件,但你可以探索 GitHub 编辑器,了解其工作原理。

创建 YAML 工作流定义

现在你已创建并克隆存储库,接下来可以创建一个基本工作流定义。

  1. 在 Visual Studio Code 中,打开“资源管理器”。

  2. 在 toy-website-workflow 文件夹的根目录下,创建一个名为“.github”的新文件夹。

    注意

    请确保在文件夹名称的开头添加时间段。 它表示这是一个隐藏文件夹,GitHub 需要 GitHub Actions 检测工作流定义所用的时间段。

  3. 在“.github”文件夹中,创建另一个名为“workflows”的文件夹。

  4. 在“workflows”文件夹中,创建一个名为“workflow.yml”的新文件。

    Screenshot of the Visual Studio Code Explorer, with the .github/workflows folder and the workflow.yml file shown.

  5. 将以下工作流定义复制到文件中:

    name: deploy-toy-website
    
    on: [workflow_dispatch]
    
    jobs:
      say-hello:
        runs-on: ubuntu-latest
        steps:
          - name: 'placeholder step'
            run: echo "Hello world!"
    
  6. 保存文件。

  7. 使用以下命令提交文件并将其推送到 GitHub 存储库:

    git add .
    git commit -m "Add initial workflow definition"
    git push
    

提示

Visual Studio Code 可帮助你处理 YAML 文件缩进。 查找指示语法错误的波浪线,或选择“查看”>“问题”,可以查看文件中的问题列表。

运行工作流

你已经创建了一个工作流定义。 GitHub Actions 会自动检测工作流文件,因为它位于 .github/workflows 目录中。

  1. 在浏览器中导航到存储库。 可能需要刷新页面才能看到所做的更改。

  2. 选择“操作”选项卡。

    Screenshot of the GitHub interface showing the repository page, and the Actions tab highlighted.

  3. 选择 deploy-toy-website 工作流。

    Screenshot of the GitHub interface showing the Actions tab, with the deploy-toy-website workflow selected.

  4. 选择“运行工作流”下拉菜单,然后选择“运行工作流”按钮。

    Screenshot of the GitHub interface showing the Actions tab, with the Run workflow dropdown and button selected.

  5. 工作流会开始运行。 这可能需要几分钟时间,你可以刷新页面,不过它应自动刷新,并显示已排队、正在运行,甚至是已完成的工作流运行。

    Screenshot of the GitHub interface showing the Actions tab, with one workflow running.

    请注意,运行状态最初显示为“已排队”。 工作流可能需要一些时间才能启动。 作业被添加到运行程序的队列中,一旦有运行程序可用,GitHub Actions 就会分配运行程序并启动作业。 然后作业状态变为“正在执行”。

    每个工作流运行都包含一个标识符。 当你需要引用工作流运行和帮助查找特定工作流运行时,可以使用此标识符。

验证工作流运行

  1. 工作流运行启动后,选择 deploy-toy-website 可查看运行的详细信息。 刷新页面,直到作业状态显示“成功”。

    Screenshot of the GitHub interface showing the details of the workflow run, with the status and commit identifier highlighted.

    另外,请注意该页面包括相关运行所使用的 Git 提交的标识符。 提交的标识符表示工作流使用的存储库内容的版本。

  2. 在作业列表中,选择“say-hello”。

    Screenshot of the GitHub interface showing the run details menu, with the say-hello job highlighted.

  3. 作业信息页随即出现,其中显示了工作流为你运行的步骤的日志。 请注意,你的“占位符步骤”已包括在内。

    Screenshot of the GitHub interface showing the workflow run log, with the placeholder step highlighted.

    请注意,此列表包含未指定的步骤。 这些步骤由 GitHub Actions 自动创建。

  4. 选择“占位符步骤”。

    Screenshot of the GitHub interface showing the workflow run log, with the placeholder step log shown.

    此步骤的日志包括工作流的 YAML 文件中指定的命令内容,以及脚本发出的“Hello world!”文本。

建议了解如何将工作流运行交叉引用到运行所包含的提交。 将工作流执行链接到提交有助于跟踪部署历史记录并诊断问题。

  1. 选择“摘要”,返回到运行摘要。

  2. 选择提交标识符。 GitHub 会显示触发了工作流运行的提交的详细信息。