使用gitlab部署hexo文章到github

!!!Warning!!!

12/8/2023:不再推荐此方法!如果只要部署静态博客到GitHub 请使用 GitHub Actions workflows

使用gitlab部署hexo文章到github

前记

使用GitLab 自动部署到github 省去了在自己电脑上装node 写好文章直接push就行,体验接近动态博客

为啥不直接发布到gitlab pages呢?我的gitlab是部署在树莓派里的,博客发布到gitlab的pages指不定哪天就凉了,还有xss的问题,所以还是发布到github吧

在gitlab中创建一个私有仓库

向项目目录下添加私钥

将公共ssh密钥添加到您的github

将.gitlab-ci.yml添加到您的项目

private_key是私钥 ,hexo-generator-searchdb,用于生成网站搜索功能 ,hexo-abbrlink –save这个是生成唯一永久文章链接用的,这些都需要相应的在hexo中配置才能生效 推送您的更改并查看结果:)

.gitlab-ci.yml

 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
image: node:lts-alpine
cache:
  paths:
    - node_modules/

before_script:
  - npm config set registry https://registry.npm.taobao.org/
  - npm install hexo-cli -g
  - npm install hexo-generator-searchdb --save
  - npm install hexo-abbrlink --save
  - npm install hexo-deployer-git --save
  - npm install
  - sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
  - apk --update add openssh-client
  - apk --update add git
  - eval $(ssh-agent -s)
  - chmod 700 private_key
  - ssh-add private_key
  - git config --global user.email "[email protected]"
  - git config --global user.name "xxxx"
  - echo StrictHostKeyChecking no >> /etc/ssh/ssh_config

pages:
  script:
    - hexo generate --deploy
  artifacts:
    expire_in: 1 day
    paths:
      - public
  only:
    - master