前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用Azure DevOps创建CI/CD实现自动构建发布

使用Azure DevOps创建CI/CD实现自动构建发布

作者头像
零式的天空
发布2022-03-27 15:52:06
发布2022-03-27 15:52:06
61800
代码可运行
举报
文章被收录于专栏:零域Blog零域Blog
运行总次数:0
代码可运行

目前博客项目代码是放在GitHub上的,每次发布了新了文章会往GitHub上推送一次,还会往托管博客的服务器推送一次,很繁琐

偶然看到可以使用微软的Azure DevOps来创建CI/CD自动构建部署到服务器,这样以来每次在本地发布新的文章,直接push到GitHub就可以摸鱼,等待几分钟后线上博客已经自动更新,美滋滋。

第一次使用Azure Devops,磕磕碰碰的测试了很久,文档目前还没有中文的,全靠谷歌翻译,有些地方自己也不是太明白,但好歹现在感觉弄好了😂

关于CI/CD的文章网上一大堆,专业术语也很多,看的费神就不做多说了😂😂😂

关于Azure DevOps相关文档可以查看https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops

创建CI

Pipelines中新建一个Builds管道任务

我的配置如下

代码语言:javascript
代码运行次数:0
运行
复制
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
- master

pool:
  vmImage: 'Ubuntu-latest'

steps:

# 使用nodejs
- task: UseNode@1
  inputs:
    checkLatest: true
  displayName: 'Install Node.js'

# 安装npm包
- task: Npm@1
  inputs:
    command: 'install'
  displayName: 'npm install'

# 全局安装hexo
- task: Npm@1
  inputs:
    command: 'custom'
    customCommand: 'install hexo -g'
  displayName: 'npm install hexo -g'

# 生成博客静态文件
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: 'hexo g'
  displayName: 'hexo g'

# - task: ArchiveFiles@2
#   inputs:
#     rootFolderOrFile: '$(Build.BinariesDirectory)'
#     includeRootFolder: true
#     archiveType: 'zip'
#     archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
#     replaceExistingArchive: true
#     verbose: true
#   displayName: 'zip file'

# 对生产的静态文件打包
- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)/public'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/file.zip'
    replaceExistingArchive: true
  displayName: 'zip file'

# 吧打包的文件上传到临时代理容器中
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/file.zip'
    ArtifactName: 'blog'
    publishLocation: 'Container'

# 一个成功到提示,没什么用
- script: echo success
  displayName: 'end...'

创建CD

这里需要设置触发方式,每次新构建成功后自动触发CD部署代码

在CD中,我创建了两个任务,第一个是吧CI中打包的文件上传到自己的服务器,第二个则是吧已经上传的压缩包解压出来并删除压缩包,这样就实现了线上博客的更新。

整个大概流程就是这样了,写的并不清楚,一些地方没有说到,主要是嫌弃麻烦😂,嘛,反正只是一次记录,不要在意太多细节。。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档