为Drone上构建集成Slack通知

胡萝虎 

 

Drone作为CI/CD届的新秀,越来越被广大程序员接受,基于Docker的构建方式+丰富的第三方插件和扩展,用起来体验非常不错。Slack作为办公领域的佼佼者,也是风头无两。Drone作为持续集成持续发布的工具,通常需要将集成发布的结果通知到使用者,比如发送通知邮件、短信等,我们这次要介绍是使用Slack提供的Webhook功能实现消息通知。

 

开启Slack的webhook功能

普通个人用户直接注册Slack( https://slack.com/)就行,可以免费使用。注册完成后配置下,访问https://app.slack.com/apps-manage页面,点击Custom Integrations:

image-20210208145102179

 

接着点击 Incoming WebHooks

image-20210208145140308

然后就按照页面提示创建一个WebHook即可,最后把生成的Webhook链接保存下来。如下图:

image-20210208145421896

配置Drone

配置Drone非常简单,打开项目根目录下的.drone.yml文件,在合适的位置(建议单独开一个pipeline,与主流程隔离)加上步骤。

以下是按独立pipeline的方式配置的,其他方式可参考Drone官方文档(http://plugins.drone.io/drone-plugins/drone-slack/

 

!!! Warning “提示”

注意---分割线不要删除

---
kind: pipeline
type: docker
name: notify

clone:
  disable: true

steps:
  - name: notify-stack
    image: plugins/slack
    settings:
      webhook: your slack webhook url,eg.https://hooks.slack.com/services/xxx/xxx/xxx
      channel: anythings
      icon_url: https://img.huluohu.com/blog/droneicon.jpg
      template: >
        {{#success build.status}}
          Deploy Blog of build-{{build.number}} succeeded. Good job. <@huluohu> <@iam>
        {{else}}
          Deploy Blog of build-{{build.number}} failed. Fix me please. <@huluohu> <@iam>
        {{/success}}
    when:
      status:
        - success
        - failure

trigger:
  status:
    - success
    - failure

depends_on: [blog-deploy]

参数说明:

  • image: plugins/slack 引入slack插件
  • webhook: 就是在Slack中创建的webhook地址
  • channel: 在Slack中创建的channel名称
  • icon_url:接受到通知是的icon图标
  • template: 消息模版,参考官方文档
  • when.status: 表示构建结果是成功还是失败,仅支持successfailure
  • trigger.status: 表示出发条件,仅支持successfailure
  • depends_on:表示这个pipeline依赖的上个pipeline,一般是构建主流程pipeline

 

开动

到这里就配置完成了,将代码push到仓库触发构建流程,drone将在主流程完成之后安装上面配置的发送消息,你的slack将收到消息通知。

git add *
git commit -m something
git push

 

image-20210208150819099

Recommended Posts

Jellyfin中使用QSV替代VAAPI转码

使用过Jellyfin的应该都会遇到转码的问题,默认情况下都是使用VAAPI进行转码,这种方式兼容性比较好,但是转码的性能比较一般。如果使用的是Intel平台J4125及更早的CPU的话,建议切换为QSV(Intel Quick Sync )进行转码,效率会比VAAPI快很多,并且CPU也会更低。

胡萝虎 

在群晖上使用Docker部署为知笔记服务

虽然市面上有很多各种类型的云笔记应用,像有道云笔记、印象、OneNote,包括Notion,博主都曾尝试使用过。但是随着资料越来越多,特别是一些涉及个人隐私的资料放在云端笔记上,比如密码、账号之类的,让博主越来越感到焦虑😂。博主此前也曾在群晖部署过蚂蚁笔记,但是使用感受实在不咋滴;一段时间以来,只能勉强用群晖自带的弱智Note Station来记录个人资料,真怕哪天自己也搞弱智了。

最近实在受不了Note Station的反人类操作了,不得不再次开启寻找解决方案的征途,幸运的是,Eureka…… 为知笔记的私有化方案终于让我解放啦

胡萝虎 

在群晖中搭建Cloudreve网盘系统

众所周知,某度网盘为了挣钱,各种极限限速,下载限速能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以Cloudreve为例,在群晖NAS上搭建一套属于自己的私人网盘服务,供读者们参考

胡萝虎 

在群晖上搭建Bitwarden密码管理服务器

管理密码是很多人头痛的事,密码设置简单好记又不太安全,设置复杂又容易忘。为了解决这个难题,市面上出现了不少密码管理工具,帮助人们管理在各种平台、系统、网站、APP上设置的密码,比如1Password、Lastpass、KeePass等,不过绝大多数需要付费才能使用。本着能白嫖就绝不花一个子儿的原则,今天我就来介绍一个不需要花钱的密码管理器——Bitwarden

胡萝虎 

使用Docker一键安装服务端神器Appwrite

Appwrite是一个基于Docker的开源的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

简单来说,如果你只会前端开发,不懂后端技术,那么这个神器就可以帮你轻松完成后端服务搭建,包括账户、用户、团队、数据库、存储、云函数等等,目前支持各类前端平台,包括Flutter、Vue、Angular、React、iOS和Android等

胡萝虎 

Leave A Comment