私のトラビスCIはUbuntu 14.04とNode.js 8を使用しています。私の.travis.yml
は次のようになります。
language: node_js
node_js:
- 8
Sudo: required
addons:
chrome: stable
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
install:
- npm set progress=false
- npm install
script:
- ng lint
- npm run test
- npm run e2e
- npm run build
Ubuntu 16.04とNode.js 10を使用するように更新して、次のように変更しました。
language: node_js
node_js:
- '10'
dist: xenial
Sudo: required
addons:
chrome: stable
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
install:
- npm set progress=false
- npm install
script:
- ng lint
- npm run test
- npm run e2e
- npm run build
ただし、xvfb
を起動しようとするとエラーが発生します。
0.00s $ sh -e /etc/init.d/xvfb start
sh:0:/etc/init.d/xvfbを開けません
コマンド「sh -e /etc/init.d/xvfb start」が失敗し、中に127で終了しました。
解決策は、sh -e /etc/init.d/xvfb start
配列からbefore_script
を削除し、xvfb
配列にservices
を単に導入することでした。
したがって、私の.travis.yml
は次のようになります。
language: node_js
node_js:
- '10'
dist: xenial
Sudo: required
services:
- xvfb
addons:
chrome: stable
before_script:
- export DISPLAY=:99.0
install:
- npm set progress=false
- npm install
script:
- ng lint
- npm run test
- npm run e2e
- npm run build
受け入れられた回答に加えて、travisのドキュメント xvfbを使用してGUIを必要とするテストを実行する に従って、結果の構成は少し明確になるはずです。 DISPLAY
を設定する必要がないため、before_script
セクションは過剰になります。
これはUbuntu 16.04(Xenial)以降のリリース、つまりdist:xenialまたはdist:bionicでのみ機能します
以下はxvfbを起動し、DISPLAY環境変数に正しい値を設定します...
また、xenial
がnode_js
言語のデフォルトのイメージになっているため、2019年にnode_jsにdistを指定する必要はありません( blogpost )。以前はtrusty
でしたので、distをtrusty
として指定することで別の解決策が考えられます( doc を参照)。しかし、デフォルトについて言えば、議論された構成は次のようになるでしょう
language: node_js
node_js:
- '10'
Sudo: required
services:
- xvfb
addons:
chrome: stable
install:
- npm set progress=false
- npm install
script:
- ng lint
- npm run test
- npm run e2e
- npm run build