ci/cd

23 阅读2分钟

什么是Github Action ?

GitHubActions是一个持续集成和持续交付的平台,它可以帮助你通过自动化的构建(包括编译、发布、自动化测试)来验证你的代码,从而尽快地发现集成错误。github于2019年11月后对该功能全面开放,现在所有的github用户可以直接使用该功能。GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行您的工作流程,或者您可以在自己的数据中心或云基础架构中托管自己的自托管运行器。在使用Github Action之前首先需要了解以下前置知识:

持续集成/持续交付的概念。 Git相关知识。 Linux或Windows或macOS脚本相关知识。 Yaml基础语法。

什么是Yaml ?

编写GithubAction的流程时,需要创建一个workflow工作流,workflow必须存储在你的项目库根路径下的.github/workflows目录中,每一个 workflow对应一个具体的.yml 文件(或者 .yaml)。 yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比properties、xml等更适合做配置文件,主要有以下几个特点:

大小写敏感。 使用缩进表示层级关系。 缩进只能使用空格,不能用 TAB 字符。 缩进的空格数量不重要,只要层级相同的元素左对齐即可。 ‘#’ 表示注释。 🍝Github Action基本概念 workflow: 一个 workflow 就是一个完整的工作流过程,每个workflow 包含一组 jobs任务。 job : jobs任务包含一个或多个job ,每个 job包含一系列的 steps 步骤。 step : 每个 step 步骤可以执行指令或者使用一个 action 动作。 action : 每个 action 动作就是一个通用的基本单元。

GitHubAction的使用

workflow

在项目库根路径下的.github/workflows目录中创建一个.yml 文件(或者 .yaml):

name: 打包项目
on: push

# 不写可能会报错
permissions:
  contents: write
# 一个workflow由执行的一项或多项job
jobs:
  npm-build:
    name: npm-build工作
    #运行在最新版ubuntu系统中
    runs-on: ubuntu-latest
    steps:
      - name: 读取仓库内容😎
        #使用checkout@v4这个action获取源码
        uses: actions/checkout@v4
      
      - name: 安装依赖✨和项目打包📦
        run: |
          npm install
          npm run build
      
      - name: 部署🚀
        #把我们的生产环境文件放到gh-pages分支里面
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          branch: gh-pages
          folder: dist

GitHubAction执行结果

对于GitHubAction的执行流程我们可以通过repo 上依次点击Actions就可以看到Action的状态和执行结果等信息: image.png

github多了一个gh-pages分支

99d0265c1fafbdb5d8c72f3497cd1894.png

仓库设置

image.png

image.png

再点击acitons

image.png

image.png 点击deploy就是部署的链接地址 image.png