Screwdriver 开源持续交付平台体验之旅

Stella981
• 阅读 626

crewdriver 是一个为持续交付而设计的开源的构建平台。

其主要开发语言是 JavaScript。

2020年2月19日,CDF(持续交付基金会) 宣布 Screwdriver 作为 CDF 的第一个孵化项目加入 CDF。

在看到这个新闻时,对 Screwdriver 充满好奇,于是在本地体验了下 Screwdriver。

官方对于 demo 体验,提供了开箱即用的友好方式(SD-In-a-box),让我们开始 Screwdriver 体验之旅吧~

本地安装 Screwdriver

最低要求:

  • Python 2.7

  • 适用于Mac的Docker 1.12+

  • Docker Compose 1.8.1+

  • Mac OSX 10.10以上

在终端中运行以下命令,以在本地启动一个 Screwdriver 集群。

python <(curl -L https://git.io/sd-in-a-box)

该命令将运行一个脚本,该脚本将在本地创建一个 Docker Compose 文件,并使用生成的 JWT 和用户提供的 Oauth 客户端 ID 和密码以 Oauth 凭据完成。如果选择 yes,则 Docker 随后将拉取 Screwdriver API,UI 和日志存储镜像,以在本地调出整个 Screwdriver 实例。写入数据库的所有数据都将存储在 data 目录中。

脚本输出截图如下:

Screwdriver 开源持续交付平台体验之旅

拉取 docker 镜像相对比较花时间,等出现下面截图中的 Lanuched!说明安装成功。

Screwdriver 开源持续交付平台体验之旅

要注意的是:如果 ip 发生变化,需要更新 dokcer-compose.yml 和 SCM OAuth 应用;In-a-box 不支持 Webhook(包括 PullRequest )触发构建。

打开 Screwdriver web 界面,截图如下:

Screwdriver 开源持续交付平台体验之旅

登陆并创建第一个 Pipeline

登陆之后,可以看到顶端导航栏有三列:Collections、Tools 以及 Create Pipeline 按钮,截图如下:

Screwdriver 开源持续交付平台体验之旅

创建 Pipeline,只需要填写 git 地址,我这里 fork 了官方用于演示的仓库( https://github.com/screwdriver-cd-test):

Screwdriver 开源持续交付平台体验之旅

点击 Start 启动流水线,运行截图如下:

Screwdriver 开源持续交付平台体验之旅

Screwdriver 特性体验

在 Screwdriver 中,如果要创建 Pipeline,只需要填写 git 仓库地址,在 git 仓库需要包含一个文件:screwdriver.yaml

关于 screwdriver.yaml 的说明,请参考: https://docs.screwdriver.cd/user-guide/configuration/index

在这个文件中有 jobs、steps 等区块,工作流中定义了这些 job 的执行顺序。

工作流功能比较强大:

  • 支持 job 串行

  • 支持 job 并行

  • 支持 job 独立运行

  • 支持 Pipeline 上下游远程触发(Remote Trigger)

  • 支持参数化构建

此外,还支持与 Slack、SonarQube 等集成

下面对上述场景截图说明

job 串行(A—>B—>C),Pipelibe 运行情况截图如下:

Screwdriver 开源持续交付平台体验之旅

job 并行(B、C 并行),Pipelibe 运行情况截图如下:

Screwdriver 开源持续交付平台体验之旅

job 独立运行(job B 独立于 Pipeline 运行,需要手动触发),Pipelibe 运行情况截图如下:

Screwdriver 开源持续交付平台体验之旅

Pipeline 上下游远程触发(job B 需要外部 Pipeline 触发),Pipelibe 运行情况截图如下:

Screwdriver 开源持续交付平台体验之旅

参数化构建,Pipelibe 运行情况截图如下:

Screwdriver 开源持续交付平台体验之旅

丰富多彩的 Loading... 提示语

此外,使用过程中发现 Loading.. 无处不在,并且 Loading 时间稍微有点延迟,比较有点意思的是 Loading.. 下方提示语丰富多彩

Screwdriver 开源持续交付平台体验之旅

Screwdriver 开源持续交付平台体验之旅

Screwdriver 开源持续交付平台体验之旅

Screwdriver 资源

了解 Screwdriver 更多信息,请访问:

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
CDF与开源DevOps持续交付系统JenkinsX,Spinnaker,Tekton,Screwdriver
什么是CDF持续交付基金会(CDF)是许多快速增长的持续交付项目(包括Jenkins、JenkinsX、Spinnaker,Tekton和Screwdriver)的中立供应商。CDF通过开放模型、培训、行业指南和可移植性重点来支持DevOps从业者。以下最佳实践被认为是一个成功的DevOps方法的关键:松耦合架构
Stella981 Stella981
3年前
Jenkins X安装过程遇到的几个问题
JenkinsX是基于Kubernetes的持续集成、持续交付平台。对JenkinsX这个新物种一直充满好奇,一直有去尝试去体验的想法。要开启体验之路,首先当然需要安装环境。官方安装中文文档指南:https://jenkinsx.io/zh/gettingstarted/(https://www.oschina.net/act
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这