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

原创
2020/02/29 19:23
阅读数 370
 
Screwdriver 是一个为持续交付而设计的开源的构建平台。
其主要开发语言是 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 更多信息,请访问:
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部