Tag: 持续集成

我如何连接javascript文件并replaceHTML中的引用?

作为TeamCity的构build/ CI过程的一部分,我想指定一组HTML文件中引用的JavaScript文件,并将它们合并为一个。 换句话说,这是我想要完成的。 之前: <script src="1.js" /> <script src="2.js" /> 后 <script src="combined.js" /> 我正在寻找一个命令行工具将1.js和2.js连接到combined.js。 然后,一个命令行工具(或者可能是相同的工具)将HTML文件中的引用replace为这个新文件。 请告诉我怎样才能做到这一点。 我到目前为止所尝试的: 我一直在看grunt-usemin看起来不错,但需要构build服务器来执行每个生成的npm install来获得依赖关系,然后运行它。 这需要很长时间,并不是一个好的解决scheme,因为我们非常频繁地构build+部署。 我知道我也可以添加我的node_modules文件夹混帐,但这也是不可取的。 如果grunt可以运行全局安装的这些模块,但这不是一个咕噜的方法(除非我错了,grunt希望所有的本地安装)。 有人还build议在开发者机器上运行grunt。 再一次,因为我们有短暂的虚拟机而不受欢迎,这会破坏开发stream程。 如果我可以在本地运行grunt-usemin而不用烦躁,那将是非常好的!

在同一个registry中pipe理2 npm lib版本 – 同一个lib文件?

我们的应用程序(my-app)依赖项之一是我们发布到npm(my-lib)的npm lib。 name: my-app; version: <my-app-version> dependencies: { my-lib: <my-lib-version> } 作为一家公司,我们致力于支持当前的版本和1个旧版本。 我的应用程序1.0.0取决于我的lib 1.0.0 name: my-app; version: 1.0.0 dependencies: { my-lib: 1.0.0 } 我的应用程序2.0.0取决于最新的my-lib是3.1.0 name: my-app; version: 2.0.0 dependencies: { my-lib: 3.1.0 } 我们在my-lib中有一个bug,我们必须解决这个问题。 很容易做的事情就是在3.1.0中修复,但是我的应用程序1.0.0不能采用3.1.0,因为它引入了重大更改,并且必须保留在版本1.XX中修复my-lib的标准方法是什么同时?

加速为AngularJs项目安装Travis-CI依赖项

我刚刚开始使用Travis-CI,我设法运行我的简单unit testing免费版本。 但即使在一个非常简单的testing集中,我也看到了与npm / bower依赖项安装步骤相关的显着延迟。 有没有办法缩短这个阶段的时间,而不是在每个构build上安装相同的依赖关系。 我读了Travis中的caching支持,但几乎所有的例子都集中在Ruby上,所以如何处理JS应用程序还不是很清楚。

什么开源的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 ?