代码改变世界

项目的构建和部署流程

2019-05-13 10:17  *奋斗*  阅读(1336)  评论(0)    收藏  举报

1、公司内部使用 Castle CI 进行项目代码构建(给前端构建用的)。

在git工具中,建立“仓库代码”与“Castle”的关联,这样代码提交更新的时候,就会触发Castle 的自动化脚本构建。Castle 进行自动化脚本构建时,需要一个配置文件 Castle.json,这里记录了构建阶段执行的命令,一次完整的构建需要如下阶段:

setup_env    // 初始化环境,如加载ssh key,clone仓库,输出环境变量
before_install
install      // 执行npm --registry=http://r.npm.***.com --color=always --strict-ssl=false install
after_install
before_test
test       // 执行npm test
after_test

注意:Castle.json 中可能包含一个镜像,这个镜像主要是提供一个环境,用来执行前端代码的模块化输出(webpack)。

2、公司内部使用 plus 进行项目代码的部署与发布。

plus 会读取一个叫 manifest.yml 的文件,里面会有些配置脚本。例如:会去执行 bin 下的 .sh 文件,文件中会执行具体的部署任务。

plus 在不同的分支环境阶段,会涉及到一些环境变量,例如:$HOME, $NODE_ENV,会在 bin 下的 .sh 文件中用到。

3、流程图参考。

4、Cargo 泳道

可以将开发所有相关的服务部署到泳道中,保持测试环境相对独立;

可以保持主干环境的稳定,即使自动化用例失败,也比较容易找错误;

可以避免多分支代码合并的冲突问题。Cargo 提供了:

通过应用编排,实现环境快速搭建能力;

结合泳道隔离机制,提供并行测试能力;

便捷高效的测试环境维护和更新能力。

5、thrift 

是一种支持跨语言传输的协议。它使用一种独立的语言来定义接口和数据类型,再通过编译生成目标语言的接口文件。例如,PHP的Client端需要与Python的Server端进行RPC交互,可以定义一个统一的交互接口文件(.thrift),再通过thrift命令编译分别生成gen-py和gen-php目录,其中包含了针对python语言和php语言的接口文件。通过在client端和server端包含各自的接口文件,二者即可实现跨语言通信。