目的

因为Hugo是部署在COS(腾讯云对象存储)上的,每次部署和同步代码都需要在本地用Hugo进行编译后将public中的静态文件上传到COS,然后删除public文件夹再将当前 的项目结构同步至github仓库中(为什么不用github pages?因为访问速度的问题)。每次发布文章的操作比较繁琐,所以可以利用github Actions来实现自动部署至COS。 这样免去了对本地环境的要求和手动上传文件到COS的繁琐操作。

Actions配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
name: Deloy to COS

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
      
    - name: Set up Go
      uses: actions/setup-go@v1.0.0
      with:
        version: 1.13.5
    - name: Install Hugo
      run: |
        export GOPATH=$HOME
        mkdir $HOME/src
        cd $HOME/src
        git clone https://github.com/gohugoio/hugo.git
        cd hugo
        go install
    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: 2.7.16
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
    - name: Install coscmd
      run: |
        pip install coscmd
    - name: deploy
      run: |
        $HOME/bin/hugo
        coscmd config -a 腾讯云AccessId -s 腾讯云SecretKey -b 桶名称 -r 桶地区 -m 10
        coscmd upload -r -s public/ /