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是否可以选择无标记的作业”