From a4b21143463ba93e41824126a469eed438ebb752 Mon Sep 17 00:00:00 2001 From: Leon Hoppe Date: Wed, 26 Feb 2025 19:12:02 +0100 Subject: [PATCH] Added gitlab ci --- .gitlab-ci.yml | 73 +++++++++++++++++++++++++++++++++++++++++++++++ karma.conf.js | 10 +++++-- package-lock.json | 4 +-- 3 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..d719ab5 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,73 @@ +image: node:lts-alpine + +stages: + - install + - lint + - test + - build + +install: + stage: install + script: + - npm install --prefer-offline + cache: + key: + files: + - package.json + paths: + - node_modules + +lint: + stage: lint + needs: ["install"] + script: + - npm run lint + cache: + key: + files: + - package.json + paths: + - node_modules + policy: pull + +test: + stage: test + needs: ["install"] + before_script: + # Download Chrome + - apk add chromium + - export CHROME_BIN=/usr/bin/chromium-browser + - export CHROME_PATH=/usr/lib/chromium/ + # Download Firefox + - apk add firefox-esr + - export FIREFOX_BIN=/usr/bin/firefox + - export FIREFOX_PATH=/usr/lib/firefox/ + # X Server + - apk add xvfb + - export DISPLAY=:99 + - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & + script: + - npm run test -- --browsers=Headless_Chrome --no-watch + cache: + key: + files: + - package.json + paths: + - node_modules + policy: pull + +build: + stage: build + needs: ["test", "lint"] + script: + - npm run build + artifacts: + paths: + - $CI_PROJECT_DIR/dist + cache: + key: + files: + - package.json + paths: + - node_modules + policy: pull diff --git a/karma.conf.js b/karma.conf.js index 611c27f..27936c3 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -37,8 +37,14 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], singleRun: false, - restartOnFileChange: true + restartOnFileChange: true, + browsers: ["Chrome"], + customLaunchers: { + Headless_Chrome: { + base: "Chrome", + flags: ["--no-sandbox", "--disable-gpu"], + }, + } }); }; diff --git a/package-lock.json b/package-lock.json index 60ff0b0..9669d9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "WorkTime", - "version": "0.1.3", + "version": "0.3.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "WorkTime", - "version": "0.1.3", + "version": "0.3.6", "dependencies": { "@angular/animations": "^18.0.0", "@angular/common": "^18.0.0",