利用(微软)Azure DevOps实现Hexo自动部署

无意间看到微软云新用户免费使用12个月的广告,于是想试试微软的vps,注册了微软云,发现微软赠送免费服务很多。在翻看免费服务时,发现Azure DevOps居然有无限制的Git存储服务,每个月送CI/CD 1800 分钟。看到这个服务,不经让我眼前一亮,前段时间在想用Travis CI实现自动部署发布Hexo,既然微软送了,索性就利用起来,这样可以实现博客备份并同时自动部署。

废话不多说了,看操作吧!

准备工作

  • 微软账号
  • Visa信用卡一张
  • 梯子(微软很多服务,在国内访问速度不佳,甚至不能访问)

注册完成之后,进入门户(Portal),在搜索栏中搜索免费服务。点进去之后,就可以看到所有的免费服务啦!在永久免费服务下面找到Azure DevOps,点击创建,跟随引导创建即可。

创建项目

进入Azure DevOps,如果没有创建组织(Organization),就先创建组织。然后创建项目,和Github创建项目一样,创建完成之后进入,找到Repos点进去,添加SSH key方便我们后面把Hexo push上去

写Build构建脚本

Azure DevOps中没有提供Hexo的部署脚本,所以我们就动手自己写一个吧(并非我原创,在网上找的)!

在Hexo博客根目录下新建pipelines.yml(名字随便取,但后缀一定是yml)。

trigger:
- master 
#Hexo 原项目分支名
pool:
  vmImage: 'Ubuntu-16.04' # 运行环境

steps:
- task: NodeTool@0 # 安装NodeJS
  inputs:
    versionSpec: '12.x'
  displayName: 'Installing Node.js...'

- task: InstallSSHKey@0 # 导入SSH
  inputs:
    hostName: git.ihitun.com,149.129.100.153 ecdsa-sha2-nistp256 AAAAE... #本地~/.ssh下的know_hosts文件里面的内容(和你git域名对应的那一行)
    sshPublicKey: ssh-rsa AAAAB3NzaC1... #本地~/.ssh下的id_rsa.pub内容
    sshKeySecureFile: id_rsa # 对应私钥文件名
  displayName: 'Installing SSH...'

# 安装Hexo脚手架,Hexo依赖
- script: |
    npm install -g hexo-cli
    npm install
  displayName: 'Installing dependencies...'

# 清理(可选),生成public静态目录(可选)
- script: |
    hexo clean
    hexo g
  displayName: 'Building...'

- script: |
    ssh-keyscan -t git.ihitun.com >> ~/.ssh/known_hosts #我这里为了防止意外,所以在往known_hosts文件里面添加fingerprint
    git config --global user.name "qingque"
    git config --global user.email "[email protected]"
    hexo d
  displayName: 'Deploying...'

上传私钥(id_rsa)

要把我们本地的私钥上传到Pipelines里面,然后后面运行会报错。
左侧Pipelines - Library - Secure files上传私钥文件“id_rsa”。
点击进入刚上传的私钥,选中“Authorize for use in all pipelines”以允许Build任务读取

Push和构建

把Hexo博客Push到Azure DevOps的项目仓库,Push上去之后,进入项目的Pipelines,新建Build。

图示1

在Select中选择我们自己的仓库。

图示2
图示3
图示4

在第四步直接点击Run运行

图示4

等待1分钟左右,如果出现绿色勾,就证明成功部署啦!

微软云的DevOps相关服务,网上资料很少,如果喜欢Travis CI的,可以自行去折腾一下!

如果文章中有错误,请各位亲即时留言指正!小弟感谢直至!

原文:利用Azure DevOps实现Hexo自动部署
未经本人同意,严谨转载!!!
个人博客:https://note.qingque.me

你可能感兴趣的:(利用(微软)Azure DevOps实现Hexo自动部署)