Articles of 持续集成

什么开源的Node.js CI项目在那里?

你知道用Node.js编写什么开源持续集成服务器 ? 他们的特点,优点和缺点,你的经验是什么? 他们是否支持持续部署(“部署绿色”)?

如何configurationMocha的TeamCity构build?

我有一个项目,我正在build立通过CI的团队。 该项目本身是一个nodejs应用程序,它包含了用mocha写的testing,我们通过jscoverage覆盖。 在构buildconfiguration我设置我有3个build立步骤发生在签入。 调用jscoverage.exe对我覆盖的项目中的文件夹。 呼叫摩卡运行testing从步骤1 jscovered文件并输出到html-cov记者 将生成的coverage.html报告移到公共Web目录中以供稍后浏览。 生成目前失败的步骤2:摩卡“不存在目录C:\ NodeJS \ MeasuresAPI 我已经确保在系统环境path中包含mocha和所有节点包,并且能够在命令提示符下访问它们,但TeamCity似乎看不到它们。 对于jscoverage.exe,我不得不包括完整的path。 用摩卡,我尝试了包括我的节点全局安装的path摩卡安装的path,但它给了我一个错误: “.. \ node_modules \ mocha \ bin \ mocha”(在目录“C:\ NodeJS \ MeasuresAPI”中):CreateProcess错误= 193,%1不是有效的Win32应用程序 任何人有任何Teamcity和摩卡的经验,以及如何让他们打好? 或任何想法与一个nodejs,摩卡堆栈的持续集成?

CircleCI忽略在circle.yml中指定的节点版本

我的circle.yml设置为按照CircleCI的文档安装当前稳定版本的节点: machine: node: version: 4.2.2 然而,Circle似乎忽略了这一点,并使用默认的预稳定版本的节点。 在我的错误信息中: npm ERR! node v0.10.33 npm ERR! npm v2.13.5 我如何使CircleCI使用它的configuration文件中指定的节点版本?

Gruntjs:复制文件时replace模板

我正在写一个Gruntjs脚本 连接+将一些JS文件的模板replace成目标目录(contrib-concat) 复制+replace一些其他文件的模板(contrib-copy) 将文件打包成一个zip文件 contrib-concat有一个布尔选项过程来处理文件时replace模板(如<% pkg.version %> )。 contrib-copy也有一个选项processContent ,但是我不知道如何用这个选项触发模板处理。 module.exports = function(grunt) { grunt.initConfig({ meta: { banner: ' \ /*! <%= pkg.title || pkg.name %> – v<%= pkg.version %> – <%= grunt.template.today("yyyy-mm-dd") %>\n \ * <%= pkg.homepage %>\n \ */\n\n', build_date: '<%= grunt.template.today("yyyy-mm-dd") %>', build_num: process.env.BUILD_NUMBER || 0, // Jenkins build number if available […]

有没有一种简单的方法在Bitbucket Pipelines Docker容器中更改为非root用户?

Bitbucketpipe道使用Docker容器来执行任务,默认情况下,Docker容器以root身份运行。 这是NPM生命周期脚本的一个问题,因为NPM在运行脚本时试图降级它的权限。 当执行postinstall脚本时, NPM会抛出一个错误 ,它cannot run in wd %s %s (wd=%s) 。 最简单的解决scheme是使用–unsafe-perm标志运行npm install,但我不喜欢这种方法。 Docker写Dockerfiles的最佳实践指出: 如果一项服务可以运行没有权限,使用USER来更改为非root用户。 当configuration一个典型的Docker容器时,我将创build一个新的非root用户,并以该用户身份运行我的npm脚本。 在阅读Pipelines文档后,我找不到Docker的USER命令的任何等价物。 我可能能够使用useradd , chown和su (还没有testing过),但有一个更简单的解决scheme吗? 不幸的是,添加useradd , chown和su到bitbucket-pipelines.yml脚本部分中断pipe道并导致失败的repo:push webhook。 image: node:6.2 pipelines: default: – step: script: – useradd –user-group –create-home –shell /bin/false node – chown -R node: /opt/atlassian/bitbucketci/agent/build – su -s /bin/sh -c "npm install" node – su […]

使用CircleCI部署到Firebase托pipe

我试图找出如何使用CircleCI部署到Firebase托pipe。 据我所知,没有办法用SSH密钥设置部署,所以我试图find在部署过程中login到Firebase的方法,并推送代码。 我到目前为止所尝试的是我的circle.yml中的以下内容: // circle.yml deployment: production: branch: circle-deploy commands: – npm install -g firebase-tools – firebase login | echo -e "${FIREBASE_EMAIL}\n${FIREBASE_PASSWORD}" – firebase deploy 但是,我不断收到以下错误,我不知道如何补救。 stream.js:94 throw er; // Unhandled stream error in pipe. ^ Error: write EPIPE at errnoException (net.js:904:11) at Object.afterWrite (net.js:720:19)

Npm后安装只在开发

我有npm模块与以下package.json { "name": "my-app", "version": "0.0.0", "scripts": { "prepublish": "bower install", "build": "gulp" }, "dependencies": { "express": "~4.0.0", "body-parser": "~1.0.1" }, "devDependencies": { "gulp": "~3.6.0", "bower": "~1.3.2" } } 当我将我的应用程序部署到生产环境时,我不想安装devDependecies,因此运行npm install –production 。 但是在这种情况下, prepublish脚本被调用,但是它并不需要,因为我在生产中使用CDN链接。 如何仅在npm install后调用postinstall脚本,而不是在npm install –production后调用npm install –production ?

使用Gitlab CI将每个构build部署到服务器

我已经为其configuration了一个项目和一个Gitlab运行器,build立了自己的Gitlab服务器。 我是新来的持续集成服务器,因此不知道如何完成以下。 每次我承诺我的项目主分支我想部署到另一台服务器的存储库,并在那里运行两个shell命令( npm install和forever restartall ) 我将如何做到这一点? 我也需要在项目部署的机器上使用跑步者吗?

package.json生成/ npm未使用的包

我在我的项目中引入了unit testing,为此,我需要使自己成为一个package.json文件。 第一个问题是,你正在使用哪个unit testing suite ? 我期待mocha ,这似乎是非常标准的Node.js项目。 第二个问题是:有什么不可思议的方式来生成一个package.json文件? (对于依赖和版本) 第三个问题是:在开发我的项目的过程中,我一直在testing大量的npm packages ,现在我遇到了很多可能未使用的包。 有什么办法可以告诉哪一个是无用的? (我看到npm list installed哪个是有用的,虽然)

如何使用maven部署node.js应用程序?

我们的大部分团队都由java开发人员组成,因此整个构build/部署/依赖pipe理系统build立在maven之上。 我们使用CI,所以每个构build过程都运行unit testing(前端的业力和幻影,后端的茉莉节点)。 我设法为此configuration一个业力maven插件。 这并不能解决在build上从package.json下载node.js依赖关系的问题。 我需要在现有环境中部署我的node.js / express应用程序,所以完美的场景是: 从回购拉(使用maven构build自动完成) npm install (即 – 从节点包registry中下载依赖项) 运行testing 我试图为mavenfind一个nodejs包,但说实话 – 作为一个node.js开发人员,我不觉得在select正确的工具方面非常自信,因为我无法区分一个不好的maven插件一个体面的。 也许使用shell插件并从terminal调用npm install是一个更好的select? 你怎么看?