2016-10-29 2 views
3

Привет, я пытаюсь настроить ci на gitlab для запуска теста для каждого фиксации и нажатия, но я не могу настроить конфигурационный файл yml, может ли кто-нибудь объяснить мне, что я делаю неправильно, мой текущий файл yml являетсяGitlab CI для Angular 2 Project

image: node:4.2.2 
cache: 
    paths: 
    - node_modules/ 
test_app: 
    script: 
    - npm install 
    - npm test 

Это дает мне сообщение об ошибке во время установки модуля Phantom.js поэтому я попытался ниже конфигурации, но показывает неверный синтаксис.

image: node:4.2.2 

befor_script: 
    - mkdir ~/tmp 
    - pushd ~/tmp 
    - wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 
    - tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 
    - mv phantomjs-2.1.1-linux-x86_64 phantomjs 
    - ln -s ~/tmp/phantomjs/bin/phantomjs /usr/bin/phantomjs 
    - phantomjs --version 
    - cd .. 

cache: 
    paths: 
    - node_modules/ 

test_app: 
    script: 
    - npm install 
    - npm test 

Мои файлы Package.Json является

{ 
    "name": "test", 
    "version": "0.1.0", 
    "description": "My Angular2-TypeScript App", 
    "keywords": [ 
    "angular2", 
    "typescript", 
    "webpack" 
    ], 
    "scripts": { 
    "lint": "tslint \"src/**/*.ts\"", 
    "postinstall": "webdriver-manager update", 
    "e2e": "protractor", 
    "start": "gulp serve", 
    "build": "gulp build", 
    "test": "karma start" 
    }, 
    "dependencies": { 
    "@angular/common": "2.0.0", 
    "@angular/compiler": "2.0.0", 
    "@angular/core": "2.0.0", 
    "@angular/forms": "2.0.0", 
    "@angular/http": "2.0.0", 
    "@angular/platform-browser": "2.0.0", 
    "@angular/platform-browser-dynamic": "2.0.0", 
    "@angular/router": "3.0.0", 
    "@types/core-js": "^0.9.34", 
    "angular2-jwt": "^0.1.24", 
    "bootstrap": "^3.3.7", 
    "core-js": "^2.4.1", 
    "jquery": "^2.2.4", 
    "ng2-bootstrap": "^1.1.16", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.12", 
    "zone.js": "^0.6.23" 
    }, 
    "devDependencies": { 
    "@types/jasmine": "^2.5.35", 
    "@types/node": "^6.0.45", 
    "@types/protractor": "^1.5.20", 
    "@types/selenium-webdriver": "2.44.28", 
    "codelyzer": "0.0.19", 
    "protractor": "^4.0.9", 
    "protractor-jasmine2-screenshot-reporter": "^0.3.2", 
    "gulp": "^3.9.1", 
    "gulp-load-plugins": "^1.3.0", 
    "gulp-shell": "^0.5.2", 
    "run-sequence": "^1.2.2", 
    "rimraf": "^2.5.2", 
    "tslint": "^3.13.0", 
    "typescript": "^2.0.3", 
    "css-loader": "^0.23.1", 
    "extract-text-webpack-plugin": "^1.0.1", 
    "file-loader": "^0.8.5", 
    "jasmine-core": "^2.4.1", 
    "karma": "^0.13.22", 
    "karma-coverage": "^1.0.0", 
    "karma-jasmine": "^0.3.8", 
    "karma-mocha-reporter": "^2.0.4", 
    "karma-phantomjs-launcher": "^1.0.0", 
    "karma-sourcemap-loader": "^0.3.7", 
    "karma-webpack": "^1.7.0", 
    "html-loader": "^0.4.3", 
    "html-webpack-plugin": "^2.15.0", 
    "null-loader": "^0.1.1", 
    "raw-loader": "^0.5.1", 
    "style-loader": "^0.13.1", 
    "ts-loader": "^0.8.1", 
    "webpack": "^1.13.1", 
    "webpack-dev-server": "^1.14.1", 
    "webpack-merge": "^0.14.0" 
    }, 
    "private": true 
} 

Ошибка я получаю

npm info build /builds/test/test/node_modules/rxjs/node_modules/symbol-observable 
npm info linkStuff [email protected] 
npm info install [email protected] 
npm info postinstall [email protected] 
npm info build /builds/test/test/node_modules/rxjs 
npm info linkStuff [email protected] 
npm info install [email protected] 
npm info postinstall [email protected] 
npm info [email protected] Failed to exec install script 
npm ERR! Linux 4.7.0-coreos-r1 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" 
npm ERR! node v4.2.2 
npm ERR! npm v2.14.7 
npm ERR! code ELIFECYCLE 

npm ERR! [email protected] install: `node install.js` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node install.js'. 
npm ERR! This is most likely a problem with the phantomjs-prebuilt package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  node install.js 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls phantomjs-prebuilt 
npm ERR! There is likely additional logging output above. 
npm info preuninstall [email protected] 
npm info uninstall [email protected] 
npm info postuninstall [email protected] 
npm info preuninstall [email protected] 
npm info uninstall [email protected] 
npm info postuninstall [email protected] 

npm ERR! Please include the following file with any support request: 
npm ERR!  /builds/test/test/npm-debug.log 
ERROR: Build failed: exit code 1 

ответ

2

У меня была такая же проблема, как получить последнюю nodejs v6 пакеты решить эту проблему для меня.

Официальные Ubuntu пакеты для nodejs далеко позади, чтобы установить последние nodejs v6 пакеты для Ubuntu используют следующие команды:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 
sudo apt-get install -y nodejs 
0

Обновление до первого ответа:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - 
sudo apt-get install -y nodejs 
0

Задача для меня должен был запускать тесты e2e, требующие реального браузера.

Хром, к счастью, имеет режим --headless (и есть даже пакет Debian), поэтому вам больше не нужен PhantomJS (причина, по которой его нынешний сопровождающий объявил о планах прекратить PhantomJS).

Ключом является создание Xvfb перед запуском Chrome на GitLab CI. Для точного кода настройки, проверьте How to run AngularJS end-to-end tests on GitLab CI.