阿里云持续交付平台 关注
手机版

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

  1. 云栖社区>
  2. 阿里云持续交付平台>
  3. 博客>
  4. 正文

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

yuxiao.lxy 2016-04-25 13:48:51 浏览2379 评论0

摘要: 本文会演示如何在CRP上编译并部署一个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上关联代码库

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

1_1

输入代码库名称
1_2

点击添加,关联代码库
1_3

CRP上配置工作流

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

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

2_1

点击“开始节点”

2_2

配置编译/测试任务

点击“任务列表”,添加任务
2_3

选择语言的类型
2_4

输入编译的指令,自带有默认的指令
2_5

配置好的工作流

2_6

编译/测试的指令为:

npm -d install
npm test

试运行工作流

生效工作流

4_1

触发工作流

5_1

工作流运行的状态

6_1
6_2

运行的日志和结果:

6_3

配置带有部署的工作流

配置部署任务,具体的部署参数可参看https://yq.aliyun.com/articles/26414?spm=5176.team20.teamshow1.19.yHg6Pa
7_1

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

运行工作流

查看执行的结果
7_3

一些细节和约定

  • crp配置部署任务前需要配置代码更新。
  • node项目的编译依赖package.json,编译指令常用“npm install”,crp编译项目时默认的淘宝镜像源,编译速度较快。
  • node版本的变化从0.12到4.4再到5.9,crp支持现有的主流版本,可适用于多种不同版本的项目;
  • crp工作流配置时如果部署任务需要使用编译结束的包,则需要配置输出物路径,如果填写“./”,会讲整个项目打包;如果不配置输出物路径,则不会上传编译的包,会引用源码包。
【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

yuxiao.lxy
文章11篇 | 关注21
关注
业内领先的面向企业的一站式研发提效平台(研发效能),通过项目流程管理和专项自动化提效工具,能... 查看详情
Node.js 性能平台(Node.js Performance Platform)是面向中... 查看详情
提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航