Open kunpeng9 opened 3 years ago
March 06, 2019
通过 issues 来写博客文章,并自动部署到 gh-page。
issues
gh-page
html
acyort
repo::public_repo
repo
circleci
variable
webhook
gh-pages 有两种形式,具体请看官方说明:
gh-pages
username.github.io
user page
prject page
docs
无论、以何种方式来建立起 gh-pages 都可以。
但是如果以 username.github.io 来创建的话,内容只能放在 master 分支,并不能像其他 repo 一样通过 gh-pages 或者 docs 文件夹生成。
master
下面统一用 username.github.io 来创建 gh-pages
blog-config
blog
两个 token 都要自行保存,关闭就找不回来。
token
github token
申请一个具有写权限的 github token,scope 选择 repo::public_repo, 用于将生成后的文件通过 api 直接 push 到该项目中。
scope
api
push
circleci token
申请一个 circleci token, 用来通过 webhook 来触发 circle build。
circle build
在 blog-config 中,创建以下文件:
|-.circleci |- config.yml // circleCi 的配置文件 |-config.yml // acyort 配置文件 |-package.json // 这个不用说
package.json
{ "name": "blog name", "version": "1.0.0", "description": "blog", "main": "index.js", "scripts": { "deploy": "acyort flow" }, "dependencies": { "acyort": "^3.1.1", "acyort-donob-renderer": "^1.5.0", "acyort-plugin-fetch-issues": "^1.3.1", "acyort-plugin-rss": "^1.5.0", "acyort-templates-donob-plus": "^1.5.1", "gh-pages": "^2.0.1" } }
config.yml (acyort 配置文件)
title: blog name description: blog desc url: http://username.github.io template: acyort-templates-donob-plus menu: Archives: /archives/ Tags: /tags/ repository: username/blog-config public: public timezone: Asia/Shanghai plugins: - acyort-plugin-fetch-issues - acyort-donob-renderer
.circleci/config.yml
version: 2 jobs: build: docker: - image: node:latest working_directory: ~/acyort branches: only: - master steps: - checkout - restore_cache: keys: - yarn-packages-{{ checksum "yarn.lock" }} - run: yarn install - save_cache: name: Save Yarn Package Cache key: yarn-packages-{{ checksum "yarn.lock" }} paths: - ~/.cache/yarn - run: yarn deploy - run: git config user.name "" - run: git config user.email "" - run: npx gh-pages -d public -r https://${gh_token}@github.com/username/username.github.io.git -b master -m "Updated by circleci - `date`"
linux
node
start build
fail
gh_token
Job
BUILD SETTINGS
Environment Variables
Add variable
name
config.yml
${gh_token}
value
gh-token
build fail
rebuild
build
回到 blog-config 项目中配置
settings
Add webhook
Payload URL
:token
Content-Type
application/json
let me select xxx
save
至此博客已经算搭建完成,只需要在 blog-config 写 issues, 就会同步部署到 gh-pages。
更多配置请参考
March 06, 2019
通过
issues
来写博客文章,并自动部署到gh-page
。介绍
html
输出等。acyort
的插件,用来拉取issues
数据并进行处理,处理完后将对应模板进行渲染。整体步骤
repo::public_repo
repo
并创建 circleci token(需要保存下来)circleci
中对应项目加入variable
.repo
中添加webhook
issues
关于 gh-pages
gh-pages
有两种形式,具体请看官方说明:username.github.io
命名的项目,是分配给每个用户的user page
。prject page
, 各项目中通过gh-pages
分支或者通过docs
文件夹所生成的gh-pages
。无论、以何种方式来建立起
gh-pages
都可以。但是如果以
username.github.io
来创建的话,内容只能放在master
分支,并不能像其他repo
一样通过gh-pages
或者docs
文件夹生成。下面统一用
username.github.io
来创建gh-pages
详细步骤
创建 repo
username.github.io
的repo
,负责接收生成后的html
内容,并生成user page
。blog-config
(名字随意),用来管理blog
配置,以及issues
管理。申请两个 token
两个
token
都要自行保存,关闭就找不回来。github token
申请一个具有写权限的 github token,
scope
选择repo::public_repo
, 用于将生成后的文件通过api
直接push
到该项目中。circleci token
申请一个 circleci token, 用来通过
webhook
来触发circle build
。写入配置文件
在
blog-config
中,创建以下文件:package.json
config.yml (acyort 配置文件)
.circleci/config.yml
配置 circleci
blog-config
项目加入到circleci
中。linux
和node
环境。start build
, 此时应该是fail
的,因为gh_token
还未加入到环境变量中。Job
, 找到blog-config
项目,点击设置BUILD SETTINGS
中找到Environment Variables
Add variable
name
为gh_token
(这里名字要跟config.yml
中${gh_token}
一样),value
填入刚刚申请到的gh-token
。circleci
项目中,点击上一次的build fail
条目,右上角有rebuild
build
, 并且username.github.io
这个仓库也有对应文件。配置 webhook
回到
blog-config
项目中配置settings
webhook
Add webhook
Payload URL
填入'https://circleci.com/api/v1.1/project/github/:username/:project/tree/:branch?circle-token=:token' (自行替换相应字段), 其中:token
是从circleci
中申请的token
)Content-Type
选择application/json
let me select xxx
, 并勾选issues
选项save
写 issues
至此博客已经算搭建完成,只需要在
blog-config
写issues
, 就会同步部署到gh-pages
。最后
更多配置请参考