Hugo生成静态网页,比起传统的blog或cms系统多了生成网页+上传服务器的步骤。本文讲一讲通过Gitlab的持续集成系统来使这些步骤自动化。
首先我们把Hugo的网站源代码存放在gitlab的服务上,设置持续集成的相关配置如下。
.gitlab-ci.yml文件
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
 | image: alpine
before_script:
  - apk update && apk add git openssh-client rsync hugo && rm -rf /var/cache/apk/*
  # - git submodule update --init --recursive
pages:
  script:
  - hugo 
  - echo "${SSH_PRIVATE_KEY}" > id_rsa
  - chmod 700 id_rsa
  - mkdir "${HOME}/.ssh"
  - echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts"
  - rsync -rvz --delete -e 'ssh -i id_rsa' public/ username@liuk.co:/var/www/html/
  artifacts:
    paths:
    - public
  only:
  - master
 | 
 
其中SSH_PRIVATE_KEY SSH_HOST_KEY 作为变量在gitlab的ci设置内进行设置。网页服务器的.ssh/authorized_keys文件上设置好pub key。
选一台机器运行gitlab runner服务,并注册。
gitlab runner 设置
注册runner后,在下图中设置“指示此runner是否可以选择无标记的作业”
