0%

初识 Github Action

Github Action发布到现在(2020.1.14)已经一年多了,这一年多,已经有了将近2000个 Action,包括测试,持续集成,代码质量检查等,我今天也试着用了一下,总的使用体验还是蛮好的,如果之前使用过类似于drone这类的pipeline工具的话,会让你觉得基本是无缝切换。下面就简单分享下我的使用过程。

创建仓库

这个很简单,我直接以我的博客为例,本博客是使用hexo进行搭建的,所以很简单,本地装好hexo cli后用命令行初始化一个blog仓库,然后推到github的线上仓库中就可以了。

添加Action配置文件

这一步新手的话推荐在线上完成,点击进入仓库下的Action页面,然后点击新建一个,当然你可以使用示例的配置,我博客下面的配置是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
name: Deploy
on: [push]

jobs:
build:
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Build
run: |
npm install
npm install -g hexo-cli
hexo generate
- uses: appleboy/scp-action@master
with:
host: enginebeck.com
username: ${{secrets.username}}
password: ${{secrets.password}}
port: 22
source: "./public/*"
target: "/home/beck/blog/"

编辑完成之后点击保存,项目根目录下会多一个.github的文件夹(如果之前没有的话),.github文件夹下面会有一个workflows文件夹,我们的配文件就保存在这个文件夹里,其实可以猜到,我们可以给项目中添加多个这种配置文件,比如我这个项目就有两个配置文件,一个配置文件配置的是将博客部署刀自己的vm上,另一个是部署到github pages上,每次推完代码两个同时且独立的运行,互不影响。

上面这个配置文件很好理解,首先我们有一个Action名称[name],接下来当仓库中有代码push时会触发这个Action,jobs下定义了具体的任务步骤,首先定义接下来的任务运行在什么操作系统上,后面使用了两个官方的action进行拉取代码以及设置基础的node环境,紧接着就是我们熟悉的安装node包和编译博客,最后使用了一个scp action把编译好的静态网文件发送到我的vm上,任务到此就结束了

看起来挺简单的,但是在实际的项目中总会有一些不一样的需求,还是需要多动手去实践,我也是用的比较浅,目前暂时还没有遇到什么问题。

总结

这个东西虽然说是新发布的,但我感觉其实是gihtub把travis ci或者drone这类东西自己做了一份,而且对于私有项目还可以让我们免费的使用github的服务器资源,可以说是非常的良心了,另外从商业的角度来看,这也是微软收购github之后让github和自己原有的云服务深度融合的一个开始,20年上半年github官方的移动APP也会出来,期待有了不差钱爸爸的github给我们广大的开发者带来更多好用实用的功能。