云上持续交付实践系列4 --- node 篇

本文会演示如何在CRP上编译并部署一个Node应用。

相关的技术和网站

  1. 阿里云持续交付平台 https://crp.aliyun.com
  2. 阿里云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上关联代码库

打开项目->项目设置->代码管理

云上持续交付实践系列4 --- node 篇

输入代码库名称
云上持续交付实践系列4 --- node 篇

点击添加,关联代码库
云上持续交付实践系列4 --- node 篇

CRP上配置工作流

只配置代码更新和编译/测试任务

创建nodeBuild工作流,配置触发器

云上持续交付实践系列4 --- node 篇

点击“开始节点”

云上持续交付实践系列4 --- node 篇

配置编译/测试任务

点击“任务列表”,添加任务
云上持续交付实践系列4 --- node 篇

选择语言的类型
云上持续交付实践系列4 --- node 篇

输入编译的指令,自带有默认的指令
云上持续交付实践系列4 --- node 篇

配置好的工作流

云上持续交付实践系列4 --- node 篇

编译/测试的指令为:

npm -d install
npm test

试运行工作流

生效工作流

云上持续交付实践系列4 --- node 篇

触发工作流

云上持续交付实践系列4 --- node 篇

工作流运行的状态

云上持续交付实践系列4 --- node 篇
云上持续交付实践系列4 --- node 篇

运行的日志和结果:

云上持续交付实践系列4 --- node 篇

配置带有部署的工作流

配置部署任务,具体的部署参数可参看https://yq.aliyun.com/articles/26414?spm=5176.team20.teamshow1.19.yHg6Pa
云上持续交付实践系列4 --- node 篇

部署指令(当前版本为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

运行工作流

查看执行的结果
云上持续交付实践系列4 --- node 篇

一些细节和约定

  • crp配置部署任务前需要配置代码更新。
  • node项目的编译依赖package.json,编译指令常用“npm install”,crp编译项目时默认的淘宝镜像源,编译速度较快。
  • node版本的变化从0.12到4.4再到5.9,crp支持现有的主流版本,可适用于多种不同版本的项目;
  • crp工作流配置时如果部署任务需要使用编译结束的包,则需要配置输出物路径,如果填写“./”,会讲整个项目打包;如果不配置输出物路径,则不会上传编译的包,会引用源码包。
上一篇:mac下使用docker-for-mac代替docker-toolbox


下一篇:JVM笔记 | Java垃圾回收(GC)