- 1.首先整理一下ci的脚本和cd的脚本
- 2.项目里面已经写好的yarn ci
是前端环境, 需要准备node
然后是准备一些secret, 要到github的repo里面创建, 如果是一些更加私密的需要特定分支才可以使用的, 需要写在env里面, 最后限制enviroment和branch
然后是脚本是yml的, 需要注意yml的写法.
如何创建一个github action
- 在项目的根目录, 创建一个文件夹, .github/workflows/, 里面可以新建一个简单的ci.yml文件, 也可以用官方的button来创建, 效果一样
- 万事开头难, 也不要很早优化, 不然等下也许有问题很难排查, 所以就用这个简单的ci.yml写吧
- 写一个name: ci, 这是第一行, 也是指定 action的名字, 不然默认是用文件来命名的.
- 换行, 写触发条件, 比如ci是任何文件发生变化就要跑的, 所以on指定push的情况下, paths指定文件路径, -表示多个条件满足一个即可.
on:
push:
paths:
- "**"
- ".github/workflows/**"
- 然后再是怎么运行, jobs可以有很多个, 这边写了一个run-ci的job, 里面指定用什么版本的node.js, 比如12.22.12, 然后 yarn一下安装依赖, 最后yarn ci跑ci的脚本.
jobs:
run-ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '12.22.12'
cache: 'yarn'
- run: yarn
- run: yarn ci
- 这样就完成了一个简单的版本, 可以看到已经有一个版本在跑了.
如何复用代码呢
我们的node版本其实是可以复用的, 有好多个job的时候, 不需要写很多遍. 要升级node的时候, 复用代码的话, 就可以只改一个地方.
- 可以去创建一个.github/actions/setup-node/action.yml
name: 'Setup Node.js'
description: 'Setup Node.js'
runs:
using: "composite"
steps: - name: Setup Node.js
uses: actions/setup-node@v3
with: node-version: '12.22.12'
cache: 'yarn'
- name: Print versions
run: |
node -v
yarn -v
shell: bash
然后就可以取代之前的那一串node的配置了.
- uses: ./.github/actions/setup-node
这样就是一个简单但是可以复用的GitHub action了