Hugo 自动化 CI V2
2020年4月13日 · 301 字 · 1 分钟 · Hugo CI
改进了一下自动化发布博客的 CI,代码在下面。
如果想拿去用的话只需要修改 env 下的值就行了。
name: blog
on: [push]
# 各种信息在此处设置
env:
# config.toml 里 theme 的值
THEME_NAME: left
# 主题的 github 链接
THEME_REPO: https://github.com/batkiz/left.git
# github username
USER_NAME: batkiz
# github email
EMAIL: batkiz@outlook.com
# GitHub token
GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
# 获取 repo 内文件
- uses: actions/checkout@v2
# 使用预编译的 Hugo 二进制文件
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
# 新建站点
- name: new site
run: |
hugo new site $HOME/blog
# 获取主题
- name: get theme
run: |
git clone --depth=1 $THEME_REPO $HOME/blog/themes/$THEME_NAME
# 获取 $user.github.io 以保持 commit 记录
- name: get username.github.io
run: |
git clone --no-checkout https://github.com/$USER_NAME/$USER_NAME.github.io.git $HOME/blog/public
# 将内容文件复制进入站点内
- name: copy in
run: |
rm -rf $HOME/blog/config.toml $HOME/blog/content/
/bin/cp -rf config.toml $HOME/blog/config.toml
/bin/cp -rf content/ $HOME/blog/content/
# build
- name: build
run: |
cd $HOME/blog
HUGO_ENV=production hugo --gc --minify
# 将生成出的站点推向 user.github.io
# 注意设置 github token
- name: publish
run: |
git config --global user.name $USER_NAME
git config --global user.email $EMAIL
cd $HOME/blog/public
git add .
git commit -m "Auto Update: `date +'%Y-%m-%d %H:%M:%S'`"
git push "https://$USER:$GH_TOKEN@github.com/$USER_NAME/$USER_NAME.github.io.git" master:master
附赠本人用于存放 blog 内容仓库的 gitignore
/archetypes/
/data/
/layouts/
/public/
/resources/
/static/
/themes/