1、本地安装hexo
安装的前提是安装了nodejs
,然后才能使用nodejs
的npm
进行安装
npm install hexo-cli -g
2、创建个人博客
hexo init blog
3、命令行切换至博客目录并进行初始化
cd blog
npm install
4、在本地进行查看
hexo server
注:本教程不涉及更换主题
5、在GitHub创建仓库并将代码上传到仓库之中
git init
git add .
git commit -m"自己的备注"
git remote add origin https:// http://7881188.cn/自己的仓库url地址
git push -u origin master
6、创建githubaction
name: deploy blog to aliyun
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
# 切换分支
- name: Checkout
uses: actions/checkout@master
# 下载 git submodule
- uses: srt32/git-actions@v0.0.3
with:
args: git submodule update --init--recursive
# 使用 node:10
- name: use Node.js 10
uses: actions/setup-node@v1
with:
node-version: 10
# npm install
- name: npm install
run: |
npm install -g hexo-cli
npm install
env:
CI: true
# build
- name: hexo build
run: |
hexo clean
hexo generate
env:
CI: true
# Deploy
- name: Deploy
uses: easingthemes/ssh-deploy@v2.0.7
env:
SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }}
ARGS: "-avz --delete"
SOURCE: "public/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.TARGET }}
先别提交,然后设置上述代码中的secrets.ACCESS_TOKEN
、secrets.REMOTE_HOST
、secrets.REMOTE_USER
、secrets.TARGET
浏览器新增一个窗口,打开现在的这个项目的网页,然后点项目后面的Settings
,然后点击Secrets
中的Add a new secret
按钮。
首先添加的是ACCESS_TOKEN
(名字与第二步的workflow
中名字相同就可以了),这个值并不是你服务器的密码。那么这个值是什么呢?首先去你服务器的~/.ssh
目录,此时目录下应该有4个文件,分别是authorized_keys
、id_rsa
、id_rsa.pub
、known_hosts
。如果没有id_rsa
和id_rsa.pub
的,可以使用ssh-keygen
来生成,这两个文件就是安装Git时需要生成的私钥和公钥。这个时候你看看authorized_keys
里面有没有内容,如果有内容说明你之前设置过,ACCESS_TOKEN
的值就是authorized_keys
所对应的私钥。如果没有内容的话,你可以直接设置为公钥id_rsa.pub
的内容,如执行命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
,此时就会把id_rsa.pub
的内容写入authorized_keys
中,然后把ACCESS_TOKEN
的值设置为私钥id_rsa
中的内容,你可以运行命令cat ~/.ssh/id_rsa
然后把内容复制一份到ACCESS_TOKEN
中,如下:
设置ACCESS_TOKEN
值的目的是为了远程不使用密码来连接服务器,当ACCESS_TOKEN
的值设置好了,接下来就容易了。依次设置REMOTE_HOST
、REMOTE_USER
、TARGET
的值,比如47.111.177.111
、root
、/home/blog
等,具体的根据自己的ECS来设置。
提交workflow
文件。 浏览器的标签切换到刚才的那个页面,然后提交workflow
。当提交后可以看到代码的根目录下多了一个.github/workflows/deploy.yml
文件(文件名叫什么无所谓),然后点击Actions标签看有一个workflow
在运行,等待一会,如果显示如下,说明就好了: