Azure pipeline 配置根据条件执行脚本
2019-10-14 23:15
716 查看
Azure pipeline 配置根据条件执行脚本
Intro
我的应用通过 azure pipeline 来做持续集成,之前已经介绍了根据不同分支去打包不同的package,具体的就不再这里详细介绍了,可以参考 持续集成之nuget进阶,nuget 包可以做到根据不同的分支来
发布不同的包,那么我的应用一定也可以做到不同的分支发布不同 tag 的 docker 镜像,最后通过 azure pipeline 内置的 Condition 来做判断,可以加一些条件脚本在满足特定条件下才执行的脚本再加上变量控制,就可以比较好的实现根据分支策略来发布不同 tag 的 docker 镜像了
Solution
来看一下修改之后的
azure-pipelines.yaml示例配置吧:
steps: # ... - script: docker push $(latestImageName) displayName: 'Push latest image' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/dev')) - script: docker push $(stableImageName) displayName: 'Push stable image' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) - task: SSH@0 displayName: 'Run shell inline on remote machine' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/dev')) inputs: sshEndpoint: 'weihanli-vm' runOptions: inline inline: | kubectl set image deployment/activityreservation activityreservation=$(imageName) --record=true
当前面的 step 运行成功并且是 master 分支的 build 时,发布 tag 为 stable 的 docker 镜像,如果是 dev 分支则发布 tag 为 latest 的 docker 镜像,并且仅当当前分支为 dev 时才执行部署操作。
完整配置可以在 Github
上获取
CI 执行过程
上图是一个 dev 分支的 build,从上面的截图可以看到,只有 master 分支才执行的 step,没有被执行,直接跳过了
Reference
- < https://docs.microsoft.com/zh-cn/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml >
相关文章推荐
- IIS访问共享目录及执行脚本的配置方法
- win7配置开关机时执行脚本-以[开机/登录时启动vmware/关机之前挂起vmware]为例
- php-fpm中启用慢日志配置以检测执行较慢的PHP脚本
- weblogic配置jsm服务脚本语言执行步骤
- 常规版中,重复执行同一脚本,根据变量内容做不同操作。
- L15.3 zabbix自定义脚本执行与报警配置(辅助5.4)
- makefile 执行脚本,运行中 传递参数 改变配置
- 用tarball实现liferay自动安装部署12-配置脚本执行日志
- php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
- 我的第一个Py脚本:批量替换VC工程中的x64条件定义配置
- 根据mac来配置ip的vbs脚本
- TASKCTL中不使用代理,通过ssh免密连接执行远程脚本配置(SSH插件扩展)
- 使用gitlab, jenkins搭建CI(持续集成)系统(3) -- 根据不同触发条件执行不同的构建任务
- Openldap配置TLS加密传输(完整版——shell脚本实现[分别在客户端与服务器端执行脚本,实现TLS加密])
- maven使用assembly插件打包,剥离配置文件,加入可执行的脚本用来启动应用
- 根据mac来配置ip的vbs脚本
- 第十一回 基础才是重中之重~Conditional特性使代码根据条件在debug或者release模式中执行
- 根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考)
- 如果动态的执行java脚本,这个在脚本公式配置的时候很方便
- linux用户登陆时,配置自动加载执行shell脚本的做法