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

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 目录中。

脚本输出截图如下:

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

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

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

登陆并创建第一个 Pipeline

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

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

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

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 运行情况截图如下:

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

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

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

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

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

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

Screwdriver 资源

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

点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

CDF与开源DevOps持续交付系统JenkinsX,Spinnaker,Tekton,Screwdriver

什么是CDF持续交付基金会(CDF)是许多快速增长的持续交付项目(包括Jenkins、JenkinsX、Spinnaker,Tekton和Screwdriver)的中立供应商。CDF通过开放模型、培训、行业指南和可移植性重点来支持DevOps从业者。以下最佳实践被认为是一个成功的DevOps方法的关键:松耦合架构

Jenkins X安装过程遇到的几个问题

JenkinsX是基于Kubernetes的持续集成、持续交付平台。对JenkinsX这个新物种一直充满好奇,一直有去尝试去体验的想法。要开启体验之路,首先当然需要安装环境。官方安装中文文档指南:https://jenkinsx.io/zh/gettingstarted/(https://www.oschina.net/act

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