Jenkins在并发的grunt任务中崩溃

时间:2015-03-22 12:52:05

标签: concurrency jenkins gruntjs yeoman

我正在尝试在Jenkins中构建运行基于grunt的构建任务,该任务是使用yeoman生成器创建的。

Jenkins能够成功运行npm installbower install

问题:当我运行grunt Jenkins崩溃时:无法通过浏览器访问它,它会丢失构建任务的条目,并且必须重新启动。

如果我观察控制台输出,当任务运行时,我在服务器崩溃之前收到的最后消息是:

[4mRunning "concurrent:dist" (concurrent) task[24m [32m>>
[39mWarning: There are more tasks than your concurrency limit. After
this limit[32m
>> [39mis reached no further tasks will be run until the current tasksare[32m
>> [39mcompleted. You can adjust the limit in the concurrent task options

到目前为止我尝试了什么:

  1. 我尝试设置Jenkins以允许4个构建过程。
  2. 我还尝试将其限制为1个构建过程。两者都没有改变任何东西。
  3. 我无法真正改变这项艰巨的任务,因为我必须在30多个项目中完成这项任务。
  4. 问题:有没有办法可以在不崩溃的情况下运行并发的grunt任务?

    Gruntfile.js的一部分:

    // Run some tasks in parallel to speed up the build process
    concurrent: {
      server: [
        'compass:server'
      ],
      test: [
        'compass'
      ],
      dist: [
        'compass:dist',
        'imagemin',
        'svgmin'
      ]
    },
    

2 个答案:

答案 0 :(得分:1)

虽然adben的答案是正确的,但他没有解释在哪里设置limit。它位于您的Gruntfile中,它应该是如何查找具有2个并发任务的示例:

grunt.initConfig({
    concurrent: {
        target: {
            tasks: [ 'watch', 'nodemon:run' ],
            options: {
                limit: 2,
                logConcurrentOutput: true
            }
        },
    }
});

以下是grunt concurrent

的文档

答案 1 :(得分:0)

您可以声明要使用的CPU核心数,即:

options:
      limit: 2
      logConcurrentOutput: true