之前写博客一直在家用自己的电脑上用jekyll build 后,再push 到github. 现在用公司的电脑,偶尔闲暇时间想记录些东西怎么办? 我需要先安装 ruby, 然后再安装 jekyll,太麻烦了有木有? 最近了解到了github 推出了自己的 CI/CD 功能: github actions. 这次尝试一下用它来自动构建发布github pages。
进入到自己的github 项目,会看到 Actions 标签页,会看到如下界面:
github 会根据项目的类型,推荐你使用相应的workflow. 如果是其他语言,比如说Golang, 就会推荐 go 的workflow.
github actions 已经内置了大多数比较流行的的 workflow:
我使用了推荐的jekyll, 点击【set up this workflow】。
然后编辑保存 /.github/workflows/jekyll.yml, 会在当前仓库的目录下创建相应的文件, 文件名可以随便取:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
name: Jekyll site CI
on:
push:
branches: master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Build the site in the jekyll/builder container
env:
JEKYLL_ENV: prod
run: |
docker run \
-v $:/srv/jekyll -v $/_site:/srv/jekyll/_site \
jekyll/builder:latest /bin/bash -c "chmod 777 /srv/jekyll && jekyll build --future"
上面这个workflow的整个流程在master分支发生push事件时触发,运行环境是ubuntu。当提交代码后会先执行action/checkout 拉取master代码,然后运行docker, 执行jekyll build。
现在只需要在github 中编辑 markdown, 保存一下就会自动发布blog了, 是不是比之前方便多了。
自从某软收购github之后, github也不停的感冒,之前github上已经有了类似 Travis 等第三方的CI工具, 现在github做了原生支持,也会伤了第三方的CI公司的利益。还是希望github越来越好. 能吸引更多的用户去使用.