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推送到配置好的频道.

设置

  1. Teams里创建 incoming webhook 来接受消息,并将生成的URL拷贝出来,设置成notificationURL AWS parameter的值.
  2. Teams里创建 outgoing webhook 来指向Bamboo-on-Teams服务URL, 并且拷贝生成的HMAC token, 设置成teamsHMACSharedToken AWS parameter的值.
  3. Bamboo里创建 个人访问token 给bamboo-on-teams service使用, 拷贝出来,设置成bambooAPIToken AWS parameter的值.
  4. 在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,
}
  1. 通过package.json里定义的脚本进行编译和部署Bamboo-on-Teams服务。
  2. 在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相关推荐

  1. java 持续集成工具_Jenkins集成式项目控件下载

    Jenkins是一款基于Java开发的持续集成工具,它是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能, 主要可用于持续.自动地构建/测试软件项目,如CruiseContr ...

  2. 使用应用编排服务一键式部署,持续集成利器--jenkins

    这篇文章主要是来聊一聊jenkins,可说道jenkins,我没有办法不把它与持续集成(Continuous integration,简称CI)联系到一起,所以我先来谈谈什么是持续集成以及为什么需要持 ...

  3. Jenkins与Docker的持续集成实践

    本文讲的是Jenkins与Docker的持续集成实践[编者的话]持续集成(CI/CD)是一种软件开发实践.用于帮助团队成员频繁.快速的集成,测试他们的工作成果,以尽快发现集成错误. 更频繁.更早的集成 ...

  4. sonarqube连mysql_.net持续集成sonarqube篇之sonarqube安装与基本配置

    原标题:.net持续集成sonarqube篇之sonarqube安装与基本配置 Sonarqube下载与安装 Sonarqube下载地址是:https://www.sonarqube.org/down ...

  5. 持续集成mysql_DevOps安装、部署持续集成

    1.重启docker服务,开启iptables转发功能 # systemctl start docker # vi /etc/sysctl.conf # sysctl -p [root@localho ...

  6. 以持续集成工具实现DevOps之禅

    作为DevOps流程中的一个重要组成部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建.单元测试与集成测试的执行,以及生成执行结果的报表等等.CI使开发团队无需将时间浪费在处理代码 ...

  7. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)

    上个月15日,上海MVP做了一次线下的技术分享活动,我分享的主题是<快速构建容器化的ASP.NET Core应用程序>,有关这次活动的简报,可以参考这里.另外,我的主题分享的PPT也可以点 ...

  8. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  9. 持续集成商 Travis CI 爆严重漏洞,数千开源项目机密或被盗

     聚焦源代码安全,网罗国内外最新资讯! 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为 ...

最新文章

  1. 超全 Python IDE 武器库大总结,优缺点一目了然!
  2. 递归式求时间复杂度的递归树的方法举例说明
  3. c语言多维数组指针地址讲解,C语言入门之多维数组的指针变量
  4. VBS中MSGBOX用法
  5. 这是一份通俗易懂的知识图谱技术与应用指南(转)
  6. 查看ecshop广告位对应的广告详细信息
  7. 要想选到音质好的耳机,你应该需要知道这些~
  8. 迁移到云端之前需要考虑哪些问题?
  9. 人工智能与自动驾驶汽车_自动驾驶汽车中的道德AI
  10. C语言时间片轮转调度算法
  11. 8.1 向量及其线性运算
  12. 揭秘:客服如何创造价值和自我超越
  13. i78700k配什么显卡好_2K分辨率极致吃鸡 i7-8700K配GTX1070Ti吃鸡配置推荐 (全文)
  14. swift json解析 JSONSerialization
  15. mysql 在不同数据库中创建定时同步任务,将每分钟数据转每5分钟统计
  16. Flink on Yarn的两种模式及HA
  17. 微信公众号推送多图文消息,直接跳转至外部链接(wxJava)
  18. MBps与Mbps区别
  19. [WebApi]WebApi通过接口上传文件-单文件 多文件上传 文件下载
  20. ue4种上树木 草地

热门文章

  1. 论文(2):智能车辆、自主车辆、地面无人平台、机器人、自动化、智能驾驶等相关英文术语整理
  2. 这位大佬辅导了近万人成功就业
  3. GLSL fract函数真的是返回小数部分吗
  4. 小米4拍照上传时候,上传的图片size为零
  5. vue中调用百度地图api
  6. oracle查sysdate,oracle sysdate 时间整理
  7. VJ代码Runtime error运行时错误可能情况
  8. MFC编程 -- 运行窗口居中显示
  9. word2007编辑页码,第三页开始计数
  10. 如何查看oracle数据库表空间