其他分享
首页 > 其他分享> > 一文搞懂GitHub Actions基本概念与配置

一文搞懂GitHub Actions基本概念与配置

作者:互联网

CI/CD包含很多流程,如拉取代码、测试、构建打包、登录远程服务器、部署发布等等。
而Github Actions是GitHub推出的一个CI/CD工具,类似工具还有TravisCI、Jenkins等

在GitHub Actions中,每个独立的脚本就是一个action,这些action可以复用,参考官方action市场

Github Actions 基本概念

workflow 工作流
一个工作流代表一次持续集成的过程
对于GitHub Actions,脚本以yml文件的方式编写,并约定存储在项目的.github/workflows文件夹下
一个项目可以有多个workflow

on 触发条件
比如依赖github push 触发脚本执行,push指定某个/某些分支触发,还可以指定push tag时触发等等

job 任务
一个workflow可以包含多个任务
一个 workflow 由一个或多个 job 构成,含义是一次持续集成的运行,可以完成多个任务。
job之间可以使用need形成依赖关系

jobs:
  job1:
  job2:
    needs: job1
  job3:
    needs: [job1, job2]

如 job2必须等待job1完成,job3需要在job1,job2都完成之后才执行

step 步骤
一个job可以包含多个步骤,一步步完成
step 表示要做的步骤,前一步失败,后面不会继续执行。

action 动作
一个步骤可以一次执行一个或者多个命令
一个 action有name、uses、with 等配置项
name 表示 action 的名称,uses 表示使用哪个插件,with 表示传给插件的参数。

环境变量
用户可以自定义环境变量
secrets.XXX 这个 XXX 表示本仓库的环境变量,配置在仓库设置里面的 secrets 菜单拦,都是加密的。

一个GitHub Actions demo

可结合上面的概念以及注释理解

name: Deploy GitHub Pages

# 触发条件:在 push 到 master 分支后
on:
  push:
    branches:
      - master

# 任务
jobs:
  build-and-deploy:
    # 服务器环境:最新版 Ubuntu
    runs-on: ubuntu-latest
    steps:
      # 拉取代码
      - name: Checkout
        uses: actions/checkout@v2
        with:
          persist-credentials: false

      # 1、生成静态文件
      - name: Build
        run: npm install && npm run build

      # 2、部署到 GitHub Pages
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@releases/v3
        with:
          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
          REPOSITORY_NAME: somenzz/somenzz.github.io
          BRANCH: master
          FOLDER: public
          #注意这里的 public 是仓库根目录下的 public,也就是 npm run build 生成静态资源的路径,比如有的人是 `docs/.vuepress/dist`

      # 3、同步到 gitee 的仓库
      - name: Sync to Gitee
        uses: wearerequired/git-mirror-action@master
        env:
          # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY
          SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
        with:
          # 注意替换为你的 GitHub 源仓库地址
          source-repo: git@github.com:somenzz/somenzz.github.io.git
          # 注意替换为你的 Gitee 目标仓库地址
          destination-repo: git@gitee.com:somenzz/somenzz.git

      # 4、部署到 Gitee Pages
      - name: Build Gitee Pages
        uses: yanglbme/gitee-pages-action@main
        with:
          # 注意替换为你的 Gitee 用户名
          gitee-username: somenzz
          # 注意在 Settings->Secrets 配置 GITEE_PASSWORD
          gitee-password: ${{ secrets.GITEE_PASSWORD }}
          # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错
          gitee-repo: somenzz/somenzz
          # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在)
          branch: master

      # 5、部署到 somenzz.cn 服务器
      - name: rsync deployments
        uses: burnett01/rsync-deployments@4.1
        with:
          # 这里是 rsync 的参数 switches: -avzh --delete --exclude="" --include="" --filter=""
          switches: -avzh
          path: public/
          remote_path: /home/ubuntu/public/
          remote_host: somenzz.cn
          remote_port: 22
          remote_user: ubuntu
          remote_key: ${{ secrets.MY_UBUNTU_RSA_PRIVATE_KEY }}

标签:GitHub,name,Actions,Gitee,uses,somenzz,action,搞懂
来源: https://www.cnblogs.com/ltfxy/p/16347777.html