Mon travis CI utilise Ubuntu 14.04 et Node.js 8. Mon .travis.yml
ressemble à:
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
J'ai essayé de le mettre à jour pour utiliser Ubuntu 16.04 et Node.js 10 en le changeant en:
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
Cependant maintenant j'obtiens une erreur en essayant de démarrer xvfb
:
0,00s $ sh -e /etc/init.d/xvfb start
sh: 0: impossible d'ouvrir /etc/init.d/xvfb
La commande "sh -e /etc/init.d/xvfb start" a échoué et s'est terminée avec 127 pendant.
La solution consistait à supprimer sh -e /etc/init.d/xvfb start
du before_script
array et introduisez simplement xvfb
dans le services
array.
Alors mon .travis.yml
ressemble maintenant à ceci:
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
En plus de la réponse acceptée, je dirais que la configuration des résultats devrait être un peu plus claire conformément aux documents travis tilisation de xvfb pour exécuter des tests qui nécessitent une interface graphique . Vous n'avez pas besoin de définir DISPLAY
, donc before_script
la section devient excessive:
Cela ne fonctionne que sur Ubuntu 16.04 (Xenial) et versions ultérieures, c'est-à-dire avec dist: xenial ou dist: bionic
Ce qui suit démarrera xvfb et définira les bonnes valeurs pour la variable d'environnement DISPLAY ...
De plus, vous n'avez pas besoin de spécifier dist en 2019 pour node_js, car xenial
est l'image par défaut pour node_js
langue maintenant ( blogpost ). Auparavant, c'était trusty
, donc une autre solution possible pourrait être de spécifier dist comme trusty
(voir doc ). Mais en parlant de défaut, la configuration discutée pourrait ressembler à
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