前言
接上文初探CI,Github调戏Action手记——自动构建并发布
在学习了Action的基本操作之后
接着我们来探索Action其他可能的功能
众所周知 只有用得到的技术学习的才会最快
我也是如此
在完成了当前仓库不同分支的构建发布后,我又有了新的需求 自动构建后发布到不同的仓库
正文
我们直接新建一个yml发布文件
在系统给我们生成的文件中我们可以看到基础语法的介绍
这里我结合自己的理解标注一下
在进行解读之前我们先了解一下基本概念
基本术语
- workflow (工作流程)
- job (任务) 一个workflow可以由多个不同的job组成
- step (步骤) 每个job可以由多个step来组成
- action(动作) 每个step又可以由多个action来组成
Action市场
由于持续集成大家的需求大部分可能都是相同的操作
所以github建立了一个Action市场
使得每个人编写的Action脚本都可以被其他人来引用
这就使得当我这种彩笔小白想要使用这些功能的时候而不用写出很复杂的脚本
而这整个持续集成的过程也就成为了不同的Action相组合的产物
使用方法也很简单,只需要使用uses
关键字直接引用别人的库即可
uses userName/repoName
结合模板
然后我们来结合系统生成的基础模板来进行基本的解读
# This is a basic workflow to help you get started with Actions
name: CI # 构建流程的名称
on: #触发该流程的方式
push:
branches: [ master ] #触犯该流程的分支
pull_request:
branches: [ master ]
jobs:
# 该任务当前仅包含了一个任务 名称是build
build:
runs-on: ubuntu-latest #任务锁运行的工作环境
# 该任务所包含的步骤
steps:
# 步骤所依赖的操作库 这里引用了官方发布的git操作库 目的是拉取当前库的代码
- uses: actions/checkout@v2
# 这里是一个单行命令的模板
- name: Run a one-line script
run: echo Hello, world!
# 这里是一个多行命令的模板
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
使用已有的库进行持续集成(当前库构建发布到另外的库)
到这里我们就可以开始进行自己的Action的组装了
首先我们先找一个有发布到其他Git库功能的Action
我们可以在github的市场搜索自己需要的Action
这里我使用的是s0/git-publish-subdir-action@master
点开这个库的主页我们可以在下方看到该库的使用说明
这里就不在赘述了
name: AutoBuild
on:
push:
branches: [ OneKeyVip-master ]
pull_request:
branches: [ OneKeyVip-master ]
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: npm install
run: |
npm install
npm ci
- name: npm build
run: |
npm run build
cp README.MD ./publish/README.MD
cp CHANGELOG ./publish/CHANGELOG
- name: publish
uses: s0/git-publish-subdir-action@master
env:
REPO: 目标库
BRANCH: 目标分支
FOLDER: 要发布的内容所在的文件夹
SSH_PRIVATE_KEY: ${{ secrets.publish }}
结语
至此我们就完成了从当前库发布到其他的库持续集成的脚本的编写
剩下的我们就可以不再关心代码的生成与发布了
可以愉快的码代码了