diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..ce955f30db851ffd61cf9861113bda511842297a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,47 @@ +# .gitlab-ci.yml + +image: node:8 + +stages: + - test + - build + +test: + stage: test + before_script: + # Add Google Chrome to aptitude's (package manager) sources + - echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee -a /etc/apt/sources.list + # Fetch Chrome's PGP keys for secure installation + - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - + # Update aptitude's package sources + - apt-get -qq update -y + # Install latest Chrome stable, Xvfb packages + - apt-get -qq install -y google-chrome-stable xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps default-jre + # Launch Xvfb + - Xvfb :0 -ac -screen 0 1024x768x24 & + # Export display for Chrome + - export DISPLAY=:99 + # Install AngularJS CLI exclusively + # Add --unsafe-perm to resolve problems with node-gyp infinite loop on Docker + - npm install --silent --unsafe-perm -g @angular/cli@1.1.2 + # Install remaining project dependencies + - npm install --silent + # Download Selenium server JAR, drivers for Chrome + - node ./node_modules/.bin/webdriver-manager update + script: + - ng test --single-run --progress false + - ng e2e --progress false + +build: + stage: build + before_script: + - npm install --silent --unsafe-perm -g @angular/cli@1.1.2 + - npm install --silent + script: + - ng build --prod --progress false + artifacts: + paths: + - dist/ + only: + - master + - develop \ No newline at end of file