美文网首页程序员
利用(微软)Azure DevOps实现Hexo自动部署

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

作者: xexiaoyi | 来源:发表于2020-07-08 09:52 被阅读0次

    无意间看到微软云新用户免费使用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运行

    图示4

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

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

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

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

    相关文章

      网友评论

        本文标题:利用(微软)Azure DevOps实现Hexo自动部署

        本文链接:https://www.haomeiwen.com/subject/mxeqcktx.html