http-server 阻止了 travis 上的脚本 CI

http-server blocks the script on 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"   

当我的 grunt mocha 任务是 运行 时,我需要 http-server 监听 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

事实证明解决方案非常简单。我通过将 & 附加到命令来在后台创建 http-server 运行 。所以我创建了包含以下内容的文件 start-server.sh

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

并在我的 .travis.yml

before_script 部分添加了 './start-server.sh'

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