本文会演示如何在CRP上编译并部署一个Node应用。
相关的技术和网站
- 阿里云持续交付平台 https://crp.aliyun.com
- 阿里云Code https://code.aliyun.com
crp提供的编译能力
现在crp平台已经支持node0.12,node4.4.x, node5.9.x 版本的项目编译/测试
常用的node编译指令和环境
1.常用的node相关的指令
npm install //安装依赖
npm list //列举已经安装的依赖
npm test //执行测试
2.配置npm的源为淘宝的npm镜像源
通过config命令
npm config set registry https://registry.npm.taobao.org
npm info node (显示有镜像源)
命令行指定
npm --registry https://registry.npm.taobao.org info underscore
编辑 ~/.npmrc 加入下面内容
echo 'registry = https://registry.npm.taobao.org' >> ~/.npmrc
准备node代码库
选择最新github获得星较多的npm-check项目,该项目用于检测本地的node modules的状态,提供更新,debug等功能。
代码库地址:https://code.aliyun.com/qingyang1015/npm-check.git
有兴趣的同学可以先把这个代码下载下来按照README.md现在本地跑起来。
CRP上关联代码库
打开项目->项目设置->代码管理
输入代码库名称
点击添加,关联代码库
CRP上配置工作流
只配置代码更新和编译/测试任务
创建nodeBuild工作流,配置触发器
点击“开始节点”
配置编译/测试任务
点击“任务列表”,添加任务
选择语言的类型
输入编译的指令,自带有默认的指令
配置好的工作流
编译/测试的指令为:
npm -d install
npm test
试运行工作流
生效工作流
触发工作流
工作流运行的状态
运行的日志和结果:
配置带有部署的工作流
配置部署任务,具体的部署参数可参看https://yq.aliyun.com/articles/26414?spm=5176.team20.teamshow1.19.yHg6Pa
部署指令(当前版本为node5.9):
mkdir -p /home/admin/yuxiao/apps/npm-check
tar -xf /home/admin/yuxiao/apps/package.tgz -C /home/admin/yuxiao/apps/npm-check
cd /home/admin/yuxiao/apps/npm-check
node bin/cli.js -s >> /tmp/npm-check.log
ls -l /tmp/npm-check.log
运行工作流
查看执行的结果
一些细节和约定
- crp配置部署任务前需要配置代码更新。
- node项目的编译依赖package.json,编译指令常用“npm install”,crp编译项目时默认的淘宝镜像源,编译速度较快。
- node版本的变化从0.12到4.4再到5.9,crp支持现有的主流版本,可适用于多种不同版本的项目;
- crp工作流配置时如果部署任务需要使用编译结束的包,则需要配置输出物路径,如果填写“./”,会讲整个项目打包;如果不配置输出物路径,则不会上传编译的包,会引用源码包。