http-server阻止travis CI上的脚本

时间:2016-01-11 10:24:32

标签: testing gruntjs continuous-integration travis-ci

这是我的.travis.yml

language: node_js
node_js:
  - "node"
before_install:
  - npm install -g grunt-cli
  - npm install -g http-server
  - npm install -g bower
install:
  - npm install
  - bower install
services:
  - http-server
script: grunt mocha
after_success: "./travis.sh"   

http-server任务正在运行时,我需要grunt mocha监听8080端口。但是当travis CI作业启动服务器时,它只会挂起整个管道。在我的本地计算机上,我在一个控制台选项卡中启动http-server,在另一个控制台选项卡中启动grunt mocha。这里的解决方法是什么?

我发现post有同样的问题没有得到答复。

这是travis在日志中显示的内容:

...
$ http-server
Starting up http-server, serving ./
Available on:
  http:127.0.0.1:8080
  http:172.17.4.241:8080
Hit CTRL-C to stop the server
No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.
The build has been terminated

2 个答案:

答案 0 :(得分:2)

解决方案结果非常简单。我通过在命令中附加http-server使&在后​​台运行。所以我创建了文件start-server.sh,内容如下:

#!/bin/bash
http-server &
sleep 3

并在'./start-server.sh'

before_script部分添加了.travis.yml

答案 1 :(得分:2)

https://www.quora.com/How-can-I-get-Travis-CI-to-start-my-Django-server-and-then-run-my-tests-on-it

我相信我跑完了管理。 py runserver在后台,让我知道这是否适合你(不是我的开发机器atm,我在我的github上找不到修改过的脚本)

所以在你的情况下我会尝试

- http-server &
- grunt mocha