分析入口,打开这个 build:有一个 build id

能查看到 Travis 上这个 build 有很多 job 组成:

我们查看其中名叫 E2E regression tests for B2B 的 job:

这个 job 定义在 .travis.yml 文件的 jobs 区域里:

我们在 travis 上点击这个 job 的超链接,打开 job 明细页面:

https://app.travis-ci.com/github/SAP/spartacus/jobs/553015336

往下就能查看这个 job 的执行日志了:

我们逐行分析。

发现 client 和 server 都使用了 docker engine 的社区版。

用命令行下载 Chrome,克隆 Spartacus 代码库:

Setting environment variables from repository settings

$ export ARTIFACTS_BUCKET=[secure]
$ export ARTIFACTS_KEY=[secure]
$ export ARTIFACTS_SECRET=[secure]
$ export CYPRESS_KEY=[secure]
$ export SONAR_TOKEN=[secure]
$ export SPA_ENV=[secure]
$ export CYPRESS_CONFIG=cypress.ci.json
$ export LHCI_GITHUB_APP_TOKEN=[secure]

这些标注了[secure] 的都是维护在 Github 代码仓库上的隐私数据,只有指定权限的 admin 才能查看。

最终执行的是下列的命令:

export CYPRESS_CONFIG=cypress.ci.b2b.json && export SPA_ENV=‘ci,b2b’ && ./ci-scripts/e2e-cypress.sh -s b2b

依次开始执行这个脚本文件里的命令行:

脚本文件的第一行语句:

#!/usr/bin/env bash

什么是 bash?

Bash 是 GNU 项目的 shell——Bourne Again SHell。 这是一个与 sh 兼容的 shell,它结合了 Korn shell (ksh) 和 C shell (csh) 的有用功能。 它旨在符合 IEEE POSIX P1003.2/ISO 9945.2 外壳和工具标准。 它为编程和交互使用提供了对 sh 的功能改进。 此外,大多数 sh 脚本无需修改即可由 Bash 运行。

那么 sh 又是指什么?

在类 Unix 操作系统上,sh 是 Bourne shell 的命令名称,它是 Unix 和许多类 Unix 操作系统(包括 Linux)的标准命令语言解释器。

Bourne shell 的概念?

Bourne shell 最初由 AT&T 的 Steven Bourne 开发,经常用于编写脚本。 Bourne shell 在 Linux 或 Unix 提示符下通过运行 bsh 或 sh 命令来执行。

GNU 是一种操作系统,它是自由软件——也就是说,它尊重用户的自由。 GNU 操作系统由 GNU 软件包(由 GNU 项目专门发布的程序)以及第三方发布的免费软件组成。 GNU 的发展使得在没有软件会践踏您的自由的情况下使用计算机成为可能。

GNU 代表 GNU’s not Unix,这使得该术语成为递归首字母缩略词(其中一个字母代表首字母缩略词本身的首字母缩略词)。

更多Jerry的原创文章,尽在:“汪子熙”:

SAP 电商云 Spartacus UI CI 脚本分析相关推荐

  1. SAP 电商云 Spartacus UI CI e2e-cypress.sh 脚本文件分析

    (1) yarn install (2) 进到 storefrontapp-e2e-cypress 目录再次 yarn install (3) yarn build:libs 脚本命令: cypres ...

  2. SAP 电商云 Spartacus UI 产品搜索结果的设计明细

    我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...

  3. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例

    关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...

  4. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  5. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  6. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  7. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  8. SAP 电商云 Spartacus UI Quick Order 主页的实现

    存货单位(英語:stock keeping unit,SKU/ˌɛsˌkeɪˈjuː/),也翻译为库存单元,是一個會計學名詞,定义为库存管理中的最小可用单元,例如纺织品中一个SKU通常表示规格.颜色. ...

  9. SAP 电商云 Spartacus UI 从 CMS 取回 slots 和 component 之后的处理

    从前一篇文章SAP 电商云 Spartacus UI 的双重 layout 配置层设计 我们得知,Spartacus 层面的 layout-config.ts 可以控制 page template 应 ...

最新文章

  1. 二维前缀和+差分 HDU6514 Monitor
  2. linux mysql 更改MySQL数据库目录位置
  3. 给羊羔:学习web前端开发的路线(一)
  4. windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效, Windows Redis requirepass不生效...
  5. zabbix添加对web页面url的状态监控
  6. Android Annotations配置与使用
  7. jQuery中eq和get的区别
  8. 将springboot jar应用打包成镜像并在docker运行成容器
  9. 本周数据与上周对比应如何表达_互联网运营中的数据分析方法
  10. android改变下拉框字体颜色,AutoCompleteTextView下拉字体颜色
  11. PHP框架 CI与TP之MVC比较
  12. python菜鸟教程网-Python JSON
  13. 给你个选择Mac的理由,浅谈Macos系统的优点
  14. 计算机网络知识点整理
  15. WinRAR 永久去除弹窗广告
  16. 微信小程序账号注册和APPID申请
  17. CTE表--SQLSERVER2005看得见的性能提升
  18. dataV中重置边框组件的宽高的initWH方法的使用
  19. 给大家推荐几款简洁实用电脑软件!
  20. [SWPUCTF 2018]SimplePHP

热门文章

  1. Android中Intent传递Object和ArrayListObject对象---笔记
  2. 滑动listview隐藏和显示顶部布局
  3. static关键字(二)作用总结
  4. 在网页中嵌入flash之标签
  5. Oracle语句连接查询
  6. 创建可扩展性系统-4
  7. 每个[NET]开发人员现在应该下载的十种必备工具
  8. 学习HTML5 canvas遇到的问题
  9. SpringBoot学习(二)探究Springboot启动机制
  10. MySQL相关日志介绍