web-dev-qa-db-fra.com

travis: sh: 0: impossible d'ouvrir /etc/init.d/xvfb

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.

18
Francesco Borzi

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
31
Francesco Borzi

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
5
dhilt