聊天驱动式持续集成:微软Teams + Atlassian Bamboo
Bamboo-on-Teams
一个无服务器架构,聊天驱动的运维工具。可以在微软Teams里通过发送聊天消息来触发Atlassian Bamboo任务,并且在Teams里接受对应的结果推送。
功能
Bamboo交互 - 通过使用内置的 命令 来和Bamboo进行交互
消息推送 - 任务运行结果会被推送到配置的Teams频道
任务监控 - 监控Bamboo任务执行,并对超时任务推送警告到配置的Teams频道
项目链接
https://github.com/GaaraZhu/bamboo-on-teams
工作原理
Bamboo交互
用户通过Teams内置的outgoing webhook以及bamboo-on-teams服务,来和Bamboo进行交互.
消息推送和任务监控
Bamboo-on-teams内置的stepfunction会从Bamboo服务器抓取任务的最新状态,通过Teams的incoming webhook推送到配置好的频道.
设置
- Teams里创建 incoming webhook 来接受消息,并将生成的URL拷贝出来,设置成
notificationURL
AWS parameter的值. - Teams里创建 outgoing webhook 来指向Bamboo-on-Teams服务URL, 并且拷贝生成的HMAC token, 设置成
teamsHMACSharedToken
AWS parameter的值. - Bamboo里创建 个人访问token 给bamboo-on-teams service使用, 拷贝出来,设置成
bambooAPIToken
AWS parameter的值. - 在AWS parameter store里添加下面的parameters
## Infrastructure configuration ##
# ID of the AWS account in which the stack is going to be created
/bamboo-on-teams/accountId# Custom deployment bucket
/bamboo-on-teams/deploymentBucket# VPC configuration to access the private bamboo REST API(Optional if Bamboo Rest API is public available)
/bamboo-on-teams/securityGroupId
/bamboo-on-teams/subnetId## Application configuration ##
/bamboo-on-teams/applicationConfig
系统配置样例:
{"bambooHostUrl": "test.co.nz","bambooAPIToken": "NjsDAFDHkoVOASXIM4QDSDFSgRQ","hmacToken": "neasdffz+LPsYZGsdddxyOvWSiK8=","notificationURL": "https://test.webhook.office.com/webhookb2/85dcasdfaf@864e4889-04a2-416e-9f88-ca5ce1c6c1b7/IncomingWebhook/9db3asdfaa369/be873347-c615-4984-ad7a-f7952283551e","enabledForProd": false,
}
- 通过package.json里定义的脚本进行编译和部署Bamboo-on-Teams服务。
- 在Teams频道里, @ 新创建的outgoing webhook,开始执行命令.
语法
<command> [options]
Use " help" for information on a specific command. The synopsis for each command shows its options and their usage.
可用的命令
Build命令
- list-plans
- search-plans
- list-branches
- list-builds
- desc-build
- create-branch
- build
部署命令
- list-projects
- search-projects
- list-envs
- list-releases
- list-deploys
- create-release
- deploy-latest
- deploy-release
- deploy-build
- promote-release
其他命令
- help
命令使用
list-plans
Usage: list-plans
List bamboo plans.
search-plans
Usage: search-plans [options]
Search build plans.
Options:-s, --service <service> wildcard service name, e.g. customers-h, --help display help for command
list-branches
Usage: list-branches [options]
List branch plans for a service.
Options:-s, --service <service> service name, e.g. customers-v1-h, --help display help for command
list-builds
Usage: list-builds [options]
List builds for a service in a branch plan.
Options:-s, --service <service> service name, e.g. customers-v1-b, --branch <branch> bamboo branch name, e.g. release-1.0.0-h, --help display help for command
desc-build
Usage: desc-build [options]
Describe a build.
Options:-b, --build <build> build key, e.g. API-CCV28-1-h, --help display help for command
create-branch
Usage: create-branch [options
Create branch for a plan.
Options:-s, --service <service> service name, e.g. customers-v1-b, --vcs-branch <vcsBranch> vcsBranch name, e.g. master-h, --help display help for command
build
Usage: build [options]
Trigger a branch build for a service.
Options:-s, --service <service> service name, e.g. customers-v1-b, --branch <branch> bamboo branch name, e.g. master-h, --help display help for command
list-projects
Usage: list-projects
List deployment projects.
search-projects
Usage: search-projects [options]
Search deployment projects.
Options:-s, --service <service> wildcard service name, e.g. customers-h, --help display help for command
list-envs
Usage: list-envs [options]
List available environments for a service.
Options:-s, --service <service> service name, e.g. customers-v1-h, --help display help for command
list-releases
Usage: list-releases [options]
List the releases created from a service branch.
Options:-s, --service <service> service name, e.g. customers-v1-b, --branch <branch> bamboo branch name, e.g. master-h, --help display help for command
list-deploys
Usage: list-deploys [options]
List the deployments in a service environment.
Options:-s, --service <service> service name, e.g. customers-v1-e, --env <env> env name, e.g. dev-h, --help display help for command
create-release
Usage: create-release [options]
Create a release for a service build.
Options:-s, --service <service> service name, e.g. customers-v1-b, --build <build> build key, e.g. API-CCV28-1-r, --release <release> release name, e.g. v1.0.0-h, --help display help for command
deploy-latest
Usage: deploy-latest [options]
Deploy the service with the latest build in a branch to an environment.
Options:-s, --service <service> service name, e.g. customers-v1-b, --branch <branch> bamboo branch name, e.g. master-e, --env <env> env name, e.g. dev-h, --help display help for command
deploy-release
Usage: deploy-release [options]
Deploy a release to a service environment.
Options:-s, --service <service> service name, e.g. customers-v1-e, --env <env> env name, e.g. dev-r, --release <release> release name, e.g. v1.0.0-h, --help display help for command
deploy-build
Usage: deploy-build [options]
Deploy a service build to an environment.
Options:-s, --service <service> service name, e.g. customers-v1-e, --env <env> env name, e.g. dev-b, --build-key <buildKey> bamboo build key, e.g. API-CPV1-30-h, --help display help for command
promote-release
Usage: promote-release [options]
Promote the release from one environment to another.
Options:-s, --service <service> service name, e.g. customers-v1-se, --source-env <sourceEnv> source environment name, e.g. dev-te, --target-env <targetEnv> target environment name, e.g. test-h, --help display help for command
聊天驱动式持续集成:微软Teams + Atlassian Bamboo相关推荐
- java 持续集成工具_Jenkins集成式项目控件下载
Jenkins是一款基于Java开发的持续集成工具,它是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能, 主要可用于持续.自动地构建/测试软件项目,如CruiseContr ...
- 使用应用编排服务一键式部署,持续集成利器--jenkins
这篇文章主要是来聊一聊jenkins,可说道jenkins,我没有办法不把它与持续集成(Continuous integration,简称CI)联系到一起,所以我先来谈谈什么是持续集成以及为什么需要持 ...
- Jenkins与Docker的持续集成实践
本文讲的是Jenkins与Docker的持续集成实践[编者的话]持续集成(CI/CD)是一种软件开发实践.用于帮助团队成员频繁.快速的集成,测试他们的工作成果,以尽快发现集成错误. 更频繁.更早的集成 ...
- sonarqube连mysql_.net持续集成sonarqube篇之sonarqube安装与基本配置
原标题:.net持续集成sonarqube篇之sonarqube安装与基本配置 Sonarqube下载与安装 Sonarqube下载地址是:https://www.sonarqube.org/down ...
- 持续集成mysql_DevOps安装、部署持续集成
1.重启docker服务,开启iptables转发功能 # systemctl start docker # vi /etc/sysctl.conf # sysctl -p [root@localho ...
- 以持续集成工具实现DevOps之禅
作为DevOps流程中的一个重要组成部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建.单元测试与集成测试的执行,以及生成执行结果的报表等等.CI使开发团队无需将时间浪费在处理代码 ...
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)
上个月15日,上海MVP做了一次线下的技术分享活动,我分享的主题是<快速构建容器化的ASP.NET Core应用程序>,有关这次活动的简报,可以参考这里.另外,我的主题分享的PPT也可以点 ...
- 半天搭建你的Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- 持续集成商 Travis CI 爆严重漏洞,数千开源项目机密或被盗
聚焦源代码安全,网罗国内外最新资讯! 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为 ...
最新文章
- 超全 Python IDE 武器库大总结,优缺点一目了然!
- 递归式求时间复杂度的递归树的方法举例说明
- c语言多维数组指针地址讲解,C语言入门之多维数组的指针变量
- VBS中MSGBOX用法
- 这是一份通俗易懂的知识图谱技术与应用指南(转)
- 查看ecshop广告位对应的广告详细信息
- 要想选到音质好的耳机,你应该需要知道这些~
- 迁移到云端之前需要考虑哪些问题?
- 人工智能与自动驾驶汽车_自动驾驶汽车中的道德AI
- C语言时间片轮转调度算法
- 8.1 向量及其线性运算
- 揭秘:客服如何创造价值和自我超越
- i78700k配什么显卡好_2K分辨率极致吃鸡 i7-8700K配GTX1070Ti吃鸡配置推荐 (全文)
- swift json解析 JSONSerialization
- mysql 在不同数据库中创建定时同步任务,将每分钟数据转每5分钟统计
- Flink on Yarn的两种模式及HA
- 微信公众号推送多图文消息,直接跳转至外部链接(wxJava)
- MBps与Mbps区别
- [WebApi]WebApi通过接口上传文件-单文件 多文件上传 文件下载
- ue4种上树木 草地