GitHub Actions 简介与设置

GitBeginner
立即练习

介绍

GitHub Actions 是一个持续集成和持续交付(CI/CD)平台,它允许你自动化你的构建、测试和部署流程(pipeline)。你可以创建工作流(workflows),对你仓库的每一次拉取请求(pull request)进行构建和测试,或者将合并后的拉取请求部署到生产环境。

在这个实验(Lab)中,你将学习开始使用 GitHub Actions 所需的初始设置。你将经历创建 GitHub 仓库、将其克隆到本地开发环境,以及设置 GitHub Actions 用来识别你的工作流所需的特定目录结构的过程。

前提条件

  • 一个 GitHub 账户 (https://github.com)。如果你还没有 GitHub 账户,你必须首先在 https://github.com/signup 注册一个免费账户。这是完成本次实验的先决条件。
  • 熟悉命令行基础操作。

在 GitHub 网站上创建一个新仓库

在这一步,你将在 GitHub 网站上创建一个新的仓库(repository)。这个仓库将作为你项目的远程存储位置,也是 GitHub Actions 工作流(workflows)运行的地方。

  1. 打开你的网页浏览器,导航至 https://github.com
  2. 登录你的 GitHub 账户。
  3. 在任何页面的右上角,使用 + 下拉菜单,然后选择 New repository(新建仓库)。
  4. Repository name(仓库名称)框中,输入 github-actions-demo
  5. 选择 Public(公开)(GitHub Actions 对公开仓库是免费的)。
  6. 勾选 Add a README file(添加 README 文件)复选框。这确保了仓库被初始化并准备好进行克隆(clone)。
  7. 点击 Create repository(创建仓库)。

Create a new repository on GitHub website

你现在已经创建了一个远程仓库。在接下来的步骤中,你将把这个仓库带到你的本地环境。

使用 git clone 命令将仓库克隆到 Ubuntu 虚拟机

在这一步,你将把刚刚创建的仓库克隆到你的本地 LabEx 环境中。这使得你可以在本地编辑文件和创建工作流。

  1. 在你的 GitHub 仓库页面上,点击绿色的 Code 按钮。
  2. 确保选择了 HTTPS 标签页,并复制该 URL。它看起来应该像 https://github.com/your-username/github-actions-demo.git
  3. 在 LabEx 环境中打开终端。默认路径是 ~/project
  4. 使用 git clone 命令下载仓库。将 your-username 替换为你实际的 GitHub 用户名。
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

示例输出:

Cloning into 'github-actions-demo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
  1. 验证目录是否已创建:
ls -F

你应该会看到 github-actions-demo/ 被列出。

在仓库中创建 .github/workflows 目录

GitHub Actions 在你的仓库中一个特定的目录中查找工作流配置文件:.github/workflows。在这一步中,你将创建这个目录结构。

  1. 确保你位于仓库目录下:
cd ~/project/github-actions-demo
  1. 使用带 -p (parents) 标志的 mkdir 命令创建 .github 目录及其内部的 workflows 子目录:
mkdir -p .github/workflows
  1. Git 不会跟踪空目录。为了确保我们可以在下一步中提交这个结构,让我们在这个目录下创建一个名为 main.yml 的简单空工作流文件。
touch .github/workflows/main.yml
  1. 验证结构:
ls -R .github

示例输出:

.github:
workflows

.github/workflows:
main.yml

这个结构至关重要。GitHub 只会将放置在 .github/workflows 中的 YAML 文件识别为 Action 工作流。

使用 git add、git commit 和 git push 命令提交并推送目录更改

在此步骤中,你将提交新的目录结构并将其推送到 GitHub。

  1. 暂存(Stage)新文件以供提交:
git add .
  1. 使用描述性的消息提交更改:
git commit -m "Setup GitHub Actions workflow directory"

示例输出:

[main ... ] Setup GitHub Actions workflow directory
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 .github/workflows/main.yml
  1. 将更改推送到 GitHub 上的远程仓库:
git push

关于身份验证的注意事项: 当你运行 git push 时,WebIDE 会自动提示你进行身份验证。请遵循以下详细步骤:

  1. 将出现一个弹出窗口,显示消息:“The extension 'GitHub' wants to sign in using GitHub.”(扩展程序 'GitHub' 希望使用 GitHub 登录。)点击 Allow(允许)。
  2. 将出现一个新的通知。点击 **"Copy&Continue to GitHub"**(复制并继续到 GitHub),然后在下一个提示中点击 **"Open"**(打开)。
  3. 在打开的浏览器窗口中登录你的 GitHub 帐户,并输入已复制的授权码。确认授权后,页面将自动关闭。
  4. 等待几秒钟,你将看到终端成功完成推送操作。

GitHub Authentication

隐私声明: WebIDE 会请求对你的 GitHub 帐户的完全访问权限以进行身份验证。你无需担心隐私问题——在完成当前实验(lab)后,LabEx 虚拟机将立即销毁,你的凭据和授权信息不会被保留。

此身份验证过程不需要手动配置用户名或 Personal Access Token(个人访问令牌)。

遵循身份验证步骤后,你将看到类似以下内容的输出:

示例输出:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 388 bytes | 388.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   2e0917f..a191a97  master -> master
  1. 在 Web 浏览器中访问你的 GitHub 仓库,确认 .github/workflows 目录和 main.yml 文件现在已在仓库结构中可见。

总结

在这个实验 (Lab) 中,你已成功为使用 GitHub Actions 奠定了基础。你已经:

  1. 在 GitHub 上创建了一个新的仓库。
  2. 将仓库克隆到了你的本地环境。
  3. 创建了必需的 .github/workflows 目录结构。
  4. 将这些更改提交并推送回了 GitHub。

有了这个结构,你现在就可以通过编辑 workflows 目录中的 YAML 文件来定义 CI/CD 工作流了。