云上持续交付实践系列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上关联代码库

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

输入代码库名称

点击添加,关联代码库

CRP上配置工作流

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

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

点击“开始节点”

配置编译/测试任务

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

选择语言的类型

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

配置好的工作流

编译/测试的指令为:

npm -d install
npm test

试运行工作流

生效工作流

触发工作流

工作流运行的状态


运行的日志和结果:

配置带有部署的工作流

配置部署任务,具体的部署参数可参看?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工作流配置时如果部署任务需要使用编译结束的包,则需要配置输出物路径,如果填写“./”,会讲整个项目打包;如果不配置输出物路径,则不会上传编译的包,会引用源码包。
时间: 2024-09-12 06:31:15

云上持续交付实践系列4 --- node 篇的相关文章

云上持续交付实践系列3 --- Python 篇

云上持续交付实践系列3 --- Python 篇 阿里云持续交付平台CRP(Continuous Release Platform)作为一款开发人员手里的居家旅行,杀人越货的利器,必然有其广泛的应用场景.本文将会演示如何在如何使用阿里云持续交付平台部署一个Python应用.Python作为一种脚本语言,经常与多种语言一起配合完成某些复杂的功能,与此同时,其强大的第三方库又进一步拓展了Python的应用领域. 应用概述 本文涉及两个项目,分别为基于Python的在线爬虫以及基于node.js的we

云上持续交付实践系列5 --- Ruby 篇

本文会演示如何在CRP上编译并部署一个Ruby应用. 相关技术栈和用到的网站 本文将以ruby-china为例,使用CRP平台实现该项目的编译.测试和最终部署. 1. Rails作为Web框架 2. Postgres作为数据库存储 3. Memcached作为分布式内存对象缓存系统 4. Redis作为Key-Value数据库 5. Elasticsearch则作为一个简单的搜索引擎 本次实践中为了更好地使用代码库服务,我们将ruby-china的代码迁移到了阿里云Code中,在Gemfile里

云上持续交付实践系列1 --- java 篇

本文会演示如何在CRP上编译并部署一个Java Web应用. 我的应用 技术栈 我的应用是一个简单的在线购书的网站.因为是示例,所以代码就只有简单的一个登陆界面和登陆以后的书目列表界面.代码库在https://code.aliyun.com/blade_1986/bookstore. 使用的技术栈如下: Gradle作为构建工具 Spring作为IOC容器及MVC框架 JUnit作为测试框架 Spring Test作为集成测试框架 Selenium作为功能测试工具 有兴趣的同学可以先把这个代码下

云上持续交付实践系列2--- go篇

go 作为一门google 开发的语言最近是越来越火了,其具备清晰.并行.安全等优点.当下非常流行的docker就是用go 语言的编写的.阿里云持续交付平台最近推出了多语言编译的支持,其中就包括go.本文就拿github 上开源的纯go 语言项目gogits/gogs 来小尝牛刀. 项目介绍 gogs 是github 上开源的用go 编写的轻量级的git 服务器.相比于现有开源的gitlab, 它更加的灵活.轻量.跨平台,很适合小型的开发团队.项目主页的地址:https://gogs.io/ 准

打造云上代码交付链,CodePipeline实践分享

在2017在线技术峰会--首届阿里巴巴研发效能嘉年华上,来自阿里云飞天研发部的工程师莫源分享了<打造云上代码交付链,CodePipeline实践分享>.他在云计算和云平台.持续集成流程.DevOps的基础上,详细分享了Alibaba Cloud CodePipeline优于Jenkins的性能和实践. 以下内容根据直播视频整理而成. 直播视频:https://yq.aliyun.com/edu/lesson/549 PDF下载:https://yq.aliyun.com/attachment/

云效平台:企业级互联网架构下的持续集成与持续交付实践

摘要:本文的整理自2017云栖大会-南京峰会上阿里云高级技术专家鲁小川的分享讲义,讲义主要分享了阿里云云效平台对于企业级互联网架构下的持续集成与持续交付的实践经验,首先介绍了阿里云云效平台的起源,之后对于企业并发研发项目交付流程存在痛点进行了介绍,并介绍了云效平台针对业务痛点所能够提供的服务和能力,并且结合实际案例分享了云效平台持续集成和持续交付实践. 在2017云栖大会-南京峰会上,阿里云高级技术专家鲁小川做了题为<企业级互联网架构下CI/CD实践>的精彩分享.所谓CI/CD也就是持续集成与

服务化架构下企业的业务持续交付——云效平台持续交付实践

摘要:本文的整理自2017云栖大会-南京峰会上阿里云资深开发工程师苗欣的分享讲义,讲义主要分享了阿里巴巴的持续交付之路,云效平台所提供一整套的持续部署.持续交付和持续验证的解决方案,以及实际效果,并且与大家分享了业务持续交付的相关客户案例. 在2017云栖大会-南京峰会上,阿里云资深开发工程师苗欣做了题为<服务化架构下企业的业务持续交付--云效平台持续交付实践>的分享.对于企业的业务而言,由于业务非常复杂,所以即便是小业务改动需要大应用发布,无法实现轻快交付.而即便是将应用进行服务化之后,也会

云端基于Docker的微服务与持续交付实践

云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上<云端基于Docker的微服务与持续交付实践>总结而出的. 本次主要讲了什么? Docker Swarm Docker Swarm mode 微服务支持(Docker集群架构体系) Docker的发展趋势和前沿成果 在Docker技术方面还是很佩服大牛的,所以赶紧写下笔记,追随大神的脚步. 阿里云资深专家易立,技术就不说了,他比其他直播间硬生生多讲了半个多点,于情于理还是万分感谢本次分享的(可惜devOp

产品迭代发布如何更快速?阿里持续集成与持续交付实践之路全解析

2017年5月9日,云效平台资深研发工程师向禹通过直播分享了<持续集成与持续交付实践之路>.他从云效背景.云效方案.云效价值三个方面进行了分享.他主要分享了持续集成持续交付的解决方案和案例,并且对大型系统如何实现持续集成.持续交付.进行产品迭代发布进行了详细介绍. 以下内容根据直播视频整理而成. 云效背景--阿里巴巴<持续交付>之路 大应用下的交付 在七八年之前,阿里巴巴的B2B一直沿用瀑布的模式来进行项目管理,当时已经感觉到瀑布模式对应用持续快速的发展产生了很大的影响.并且当时很