无意间看到微软云新用户免费使用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 "qingque@ihitun.com"
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
运行
等待1分钟左右,如果出现绿色勾,就证明成功部署啦!
微软云的DevOps相关服务,网上资料很少,如果喜欢Travis CI的,可以自行去折腾一下!
如果文章中有错误,请各位亲即时留言指正!小弟感谢直至!
原文:利用Azure DevOps实现Hexo自动部署
未经本人同意,严谨转载!!!
个人博客:https://note.qingque.me
网友评论