【发布时间】:2015-06-23 05:07:27
【问题描述】:
试图在 Jenkins 中建立一个分支。构建总是失败,通常是在处理了一个文件之后,但有时在要最小/连接的文件列表中的随机点。
错误看起来像:
"ENOENT, no such file or directory 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419346881831"
或
"EBUSY, resource busy or locked 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419370631016'"
grunt-minify-concat 是项目的一个分支,我们在 Grunt 中添加了几行代码,添加了一个用于 CSS/JS 连接和缩小的任务。很标准的东西。以下是配置的相关位:
Gruntfile.js
cssmin: {
dist: {
expand: true,
cwd: 'MySite.Web/css/',
src: ['*.css', '!*.min.css'],
dest: 'MySite.Web/css/',
ext: '.min.css'
}
},
min: {
dist : {
expand: true,
cwd: 'MySite.Web/',
src : [
'js/*.js',
'scripts/*.js',
'!js/*.min.js',
'!scripts/*.min.js',
'!js/jquery*.js',
'!scripts/jquery*.js'
],
dest : 'MySite.Web/js/',
ext: '.min.js'
}
}
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-yui-compressor');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-msbuild');
grunt.registerTask('build', ['sass', 'cssmin', 'min' , 'msbuild:sln', 'copy:libraryDll']);
grunt.registerTask('buildserver', ['version', 'build', 'tag', 'push', 'output']);
grunt.registerTask('default', ['build']);
packages.json
"devDependencies": {
"node-sass": "~0.8.1",
"grunt": "~0.4.1",
"grunt-contrib-watch": "~0.5.3",
"grunt-sass": "~0.10.0",
"grunt-yui-compressor": "0.1.1",
"grunt-contrib-concat": "0.1.3",
"grunt-exec": "~0.4.3",
"grunt-msbuild": "~0.1.9",
"grunt-contrib-copy": "~0.5.0"
},
我已对托管 Jenkins 的 Windows 2008R2 服务器应用了一个修补程序,解决了路径长度问题。但是,我仍然遇到 EBUSY 问题。谷歌和其他论坛认为这些是 Windows 的怪癖,不会很快得到修复。
这正常吗?我通常在 Ruby 上,Sprockets 会自动完成所有这些工作。我对 Grunt 和 Jenkins 比较陌生,但这似乎是教科书 Grunt-101 的东西,应该可以正常工作。我做错了什么?
【问题讨论】:
-
FWIW,msbuild 进程喜欢闲逛。有时我必须手动运行
taskkill /im msbuild.exe /f /t。
标签: node.js jenkins gruntjs windows-server-2008-r2 yui-compressor