终于吧 blog 的自动构建 pipeline 配置好了

目前博客是基于 pelican 的 static-site generator,一个 python 模块本地渲染成静态文件然后通过 github pages 发布。

源码放在 bitbucket,之前比较懒都是本地跑,一直想改成 CI/CD pipeline,今天终于配置好了。记录一些坑吧

  1. bitbucket pipeline 不同 step 之间数据是不共享的。本来想用 parallel 功能在下载 pip 模块和 git clone 皮肤做个并行,后来发现 artifact 拷贝速度还不如串行去跑。就所有操作一个 step 做完
  2. 博客源码和生成结果可以直接同步提交信息:

    msg=$(git log -1 --pretty=%B)
    cd output
    git config user.name est
    git config user.email 邮箱
    git add .
    git commit -m "$msg"
    git push
    3. 由于 pip 模块装了不知道在哪里,所以调试 pip 安装路径方法:

    python -c 'import site; print(*site.getsitepackages(), sep="\n")'
    4. pelican 默认居然没支持 Markdown 也是醉了

    python -m pip install pelican==4.8.0 Markdown
    5. 自定义皮肤依赖,由于 submodule 我没玩转,所以这样安装:

    git clone --depth=1 git@github.com:est/aether-pelican.git || (cd aether-pelican; git pull --rebase)

Bitbucket 每个月有50分钟的免费pipeline 时间,自己用下来差不多29秒 build & publish 一次。感觉每个月也写不了60篇,所以目前是够了。

接下来的优化:

  1. 新图片通过 squoosh 压缩优化
  2. 通过 cloudflare worker 替换掉 disqus 评论功能

Comments