热搜:fiddler git ip ios 代理
历史搜索

Github Actions 实战提高生产力

游客2024-10-30 09:30:01
目录文章目录
  1. 入门
  2. 自动打 tag
  3. 自动生成 released
  4. 自动生成 released 的详情描述
  5. 自动生成一个简单的文档网站
  6. 自动发布静态资源
  7. 文档历史记录预览
  8. 自动上传 npm 包
  9. 自动生成贡献者图标

GitHub Action 持续集成服务推出有一段时间了,目前已经免费开放使用,由于个人项目都是放在 Github 上有点多,使用它来发布、测试、部署,是极大的提高了生产力。

下面通过一些实例来说明,我们可以在那些地方可以提高生产力。

入门

我们只需要在项目的 .github/workflows/ 目录下配置 yml 文件,配置触发事件既可以,例如 .github/workflows/ci.yml 中,我们在 master 分支进行 push,就可以出发这个工作流。

name: CI
on:
  push:
    branches:
      - master

为这个工作流添加一些任务,通过使用 actions/checkout 拉代码,使用 actions/setup-node 安装制定的 nodejs 版本:

name: CI
on:
  push:
    branches:
      - master

jobs:
  build-deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 14

你可以添加更多的步骤完成简单的测试,例如安装依赖,编译代码,运行测试用例等:

jobs:
  build-deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 14
      - run: npm install
      - run: npm run build
      - run: npm run coverage
      - run: npm run bundle
      - run: npm run bundle:min
      - run: npm run doc

自动打 tag

配置一个步骤,通过判断 package.json 中的变化自动创建一个 tag。

- name: Create Tag
  id: create_tag
  uses: jaywcjlove/create-tag-action@v1.3.6
  with:
    package-path: ./package.json

自动生成 released

通过判断 tag 创建成功是否成功(if: steps.create_tag.outputs.successful),来自动创建一个 released

- name: Create Release
  uses: ncipollo/release-action@v1
  if: steps.create_tag.outputs.successful
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    name: ${{ steps.create_tag.outputs.version }}
    tag: ${{ steps.create_tag.outputs.version }}

自动生成 released 的详情描述

使用 jaywcjlove/changelog-generator 获取 commit 的日志,在创建 released 的时候使用

- name: Generate Changelog
  id: changelog
  uses: jaywcjlove/changelog-generator@v1.5.0
  with:
    head-ref: ${{steps.create_tag.outputs.version}}
    filter-author: (renovate-bot|Renovate Bot)
    filter: '[R|r]elease[d]s+[v|V]d(.d+){0,2}'
- name: Create Release
  uses: ncipollo/release-action@v1
  if: steps.create_tag.outputs.successful
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    name: ${{ steps.create_tag.outputs.version }}
    tag: ${{ steps.create_tag.outputs.version }}
    body: |
      Comparing Changes: ${{ steps.changelog.outputs.compareurl }}  

      ${{ steps.changelog.outputs.changelog }}

Github Actions 实战提高生产力 1

标签:GitHub