思路
对自己的提交的md文档,通过github action编译为静态文件,然后push到username.github.io
仓库。从而可以浏览自己的博客。
- 创建一个仓库,比如名字为A-repo,用来管理自己的md文件
- 上传自己的Jekyll 网站文件,可以参考这个创建的文章;,如果不会的可以参考fastpage来生成也非常的方便。
- 创建github actions来自动运行,见最下面的步骤、
- 先checkout A-repo的master分支。对于的action: actions/checkout@main
- 构建为Jekyll静态文件 :action:actions/jekyll-build-pages@v1
- 把静态文件_site push到username.github.io仓库的master分支, s0/git-publish-subdir-action@develop
name: GitHub Actions Build and Deploy Demo
on:
push
jobs:
jekyll:
runs-on: ubuntu-latest
steps:
- name: Copy repository contents
uses: actions/checkout@main
with:
persist-credentials: false
- name: Jekyll build
uses: actions/jekyll-build-pages@v1
with:
source: .
destination: ./_site
future: false
verbose: true
token: $
- name: Push to xx.github.io repo
uses: s0/git-publish-subdir-action@develop
env:
REPO: git@github.com:$/$.github.io.git
SQUASH_HISTORY: "false"
BRANCH: master
FOLDER: ./_site
SSH_PRIVATE_KEY: $
上面提到的有一个全局变量:
- ACTION_DEPLOY_KEY: 这个是当前A-repo的里面设置的token
- repository_owner: 这个就是当前仓库的owner
- SSH_DEPLOY_KEY: 这个比较重要,就是相当于一个私钥
对于最后一个私钥特别说明下,我当时想光有一个私钥有什么用?没有公钥的哇。后来才发现,任何一对私钥和公钥都可以
,公钥添加到sshkey里面,私钥配置在当前A-repo下面即可;
创建github action
关于github action的基础用法,参见文档,不要看网上的一些文档,就官方就是最好,也是最新的;我在这里拆了一个坑;之前的教程branch可以是master,但是始终运行不起来,我都快放弃了,看了官方文档后,发现后来改为main
了。
- 注意触发的分支名称
- 注意缩进
https://docs.github.com/en/actions/quickstart
下面这个例子:
name: GitHub Actions Demo #名称
on: [push] # 触发条件是push
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest # 运行依赖环境
steps: # 步骤
- name: Check out repository code # 步骤名称
uses: actions/checkout@v3 # 依赖已有的actions,可以market里面找到很多有用的
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository # 步骤名称
run: |
ls $ # 运行bash脚本