跳到主要内容

认识

2024年04月27日
柏拉文
越努力,越幸运

一、认识


GitHub Actions 是一个持续集成 (Continuous integration)和持续交付 (Continuous delivery)的平台,它可以做到自动化构建、测试、部署。你可以创建工作流,构建和测试每一个 pull request 或者部署合并后的代码到生产环境。

Preview

二、核心


2.1 Workflows(工作流)

工作流是一个可配置的自动化的程序。创建一个工作流,你需要定义一个 YAML 文件,当你的仓库触发某个事件的时候,工作流就会运行,当然也可以手动触发,或者定义一个时间表。一个仓库可以创建多个工作流,每一个工作流都可以执行不同的步骤。

Preview

2.2 Events(事件)

事件是指仓库触发运行工作流的具体的行为,比如创建一个 pull request、新建一个 issue、或者推送一个 commit。你也可以使用时间表触发一个工作流,或者通过请求一个 REST API,再或者手动触发。

2.3 Jobs(任务)

任务是在同一个运行器上执行的一组步骤。一个步骤要么是一个 shell 脚本要么是一个动作。步骤会顺序执行,并彼此独立。因为每一个步骤都在同一个运行器上被执行,所以你可以从一个步骤传递数据到另一个步骤 。

你可以配置一个任务依赖其他任务,默认情况下,任务没有依赖,并行执行。当一个任务需要另外一个任务的时候,它会等到依赖的任务完成再执行。

2.4 Actions(动作)

动作是 GitHub Actions 平台的一个自定义的应用,它会执行一个复杂但是需要频繁重复的作业。使用动作可以减少重复代码。比如一个 action 可以实现从 GitHub 拉取你的 git 仓库,为你的构建环境创建合适的工具链等。你可以写自己的动作 ,或者在 GitHub 市场找已经实现好的动作。

2.5 Runners(运行器)

一个运行器是一个可以运行工作流的服务。每一个运行器一次只运行一个单独的任务。GitHub 提供 Ubuntu LinuxMicrosoft WindowsmacOS 运行器,每一个工作流都运行在一个独立新建的虚拟机中。如果你需要一个不同的操作系统,你可以自定义运行器。

三、搭建工作流


3.1 工作流页面

我们在之前建好的仓库中点击 New workflow 来新建一条工作流。

Preview

然后会到选择工作流的页面

Preview

这里你可以选择一条别人建好的工作流,也可以选择新建自己的工作流。我们还是选择新建自己的工作流。

3.2 编写 yml 文件

在我们项目的根目录下新建一个目录.github/workflows,这里会新建一个yml文件,我们这里就叫build.yml好了

name: Build and Deploy
on: # 监听 master 分支上的 push 事件
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest # 构建环境使用 ubuntu
steps:
- name: Checkout # 将代码拉到虚拟机
uses: actions/checkout@v2.3.1
with:
persist-credentials: false

- name: Install and Build # 下载依赖 打包项目
run: |
npm install
npm run build

- name: Deploy 🚀 # 部署
uses: JamesIves/github-pages-deploy-action@v4.3.3
with:
branch: master # 部署后提交到的分支
folder: build # 这里填打包好的目录名称

我们把这个文件提交上去,它就会在提交代码后自己完成打包及部署的工作。

3.3 查看工作流信息

Preview
Preview
Preview

参考资料


Git Actions