Setup Jenkins Dockerfile for unit tests
Some checks failed
Core Repos/Homepage/pipeline/head There was a failure building this commit

This commit is contained in:
Cameron Cordes
2020-04-20 19:25:06 -04:00
parent 432ab5ddb3
commit 4f87f6fb3f
6 changed files with 92 additions and 21 deletions

View File

@@ -1,4 +1,6 @@
.git* .git*
.idea/ .idea/
dist/ dist/
Dockerfile output/
node_modules/
Dockerfile*

5
Dockerfile.jenkins Normal file
View File

@@ -0,0 +1,5 @@
FROM node:13.10-alpine
WORKDIR /app
RUN apk add --no-cache chromium
ADD . /app
ENTRYPOINT npm install && /app/node_modules/.bin/ng test --watch=false --progress=false --browsers=ChomeHeadlessCI

46
Jenkinsfile vendored
View File

@@ -1,20 +1,32 @@
pipeline { pipeline {
agent { docker { image 'node:13.10-alpine' } } agent {
stages { dockerfile {
stage('setup') { filename 'Dockerfile.jenkins'
steps { dir '.'
sh 'npm install' args '-e CHROME_BIN=/bin/chromium -e NG_CLI_ANALYTICS="false"'
}
}
stage('build') {
steps {
sh 'node_modules/.bin/ng build --prod'
}
}
stage('lint') {
steps {
sh 'node_modules/.bin/ng lint'
}
}
} }
}
stages {
stage('setup') {
steps {
sh 'npm install'
}
}
stage('build') {
steps {
sh 'node_modules/.bin/ng build --prod'
}
}
stage('lint') {
steps {
sh 'node_modules/.bin/ng lint'
}
}
stage('test') {
steps {
sh 'node_modules/.bin/ng test --watch=false --progress=false --browsers=ChomeHeadlessCI'
}
}
}
} }

46
package-lock.json generated
View File

@@ -2690,6 +2690,16 @@
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
"dev": true "dev": true
}, },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"dev": true,
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"blob": { "blob": {
"version": "0.0.5", "version": "0.0.5",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
@@ -5050,6 +5060,13 @@
} }
} }
}, },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"dev": true,
"optional": true
},
"fileset": { "fileset": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
@@ -6843,6 +6860,24 @@
"karma-jasmine": "^1.0.2" "karma-jasmine": "^1.0.2"
} }
}, },
"karma-junit-reporter": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz",
"integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==",
"dev": true,
"requires": {
"path-is-absolute": "^1.0.0",
"xmlbuilder": "12.0.0"
},
"dependencies": {
"xmlbuilder": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz",
"integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==",
"dev": true
}
}
},
"karma-source-map-support": { "karma-source-map-support": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
@@ -7624,6 +7659,13 @@
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
}, },
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"dev": true,
"optional": true
},
"nanomatch": { "nanomatch": {
"version": "1.2.13", "version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -12075,6 +12117,8 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1",
"node-pre-gyp": "*" "node-pre-gyp": "*"
}, },
"dependencies": { "dependencies": {
@@ -12962,6 +13006,8 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1",
"node-pre-gyp": "*" "node-pre-gyp": "*"
}, },
"dependencies": { "dependencies": {

View File

@@ -46,6 +46,7 @@
"karma-coverage-istanbul-reporter": "^2.0.6", "karma-coverage-istanbul-reporter": "^2.0.6",
"karma-jasmine": "~1.1.2", "karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2", "karma-jasmine-html-reporter": "^0.2.2",
"karma-junit-reporter": "^2.0.1",
"protractor": "^5.4.3", "protractor": "^5.4.3",
"ts-node": "~7.0.0", "ts-node": "~7.0.0",
"tslint": "~5.11.0", "tslint": "~5.11.0",

View File

@@ -10,6 +10,7 @@ module.exports = function (config) {
require('karma-chrome-launcher'), require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'), require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'), require('karma-coverage-istanbul-reporter'),
require('karma-junit-reporter'),
require('@angular-devkit/build-angular/plugins/karma') require('@angular-devkit/build-angular/plugins/karma')
], ],
client: { client: {
@@ -20,12 +21,16 @@ module.exports = function (config) {
reports: ['html', 'lcovonly'], reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true fixWebpackSourcePaths: true
}, },
reporters: ['progress', 'kjhtml'], reporters: ['progress', 'kjhtml', 'junit'],
port: 9876, port: 9876,
colors: true, colors: true,
logLevel: config.LOG_INFO, logLevel: config.LOG_INFO,
autoWatch: true, autoWatch: true,
browsers: ['Chrome'], browsers: ['Chrome'],
singleRun: false singleRun: false,
junitReporter: {
outputDir: 'junit-report',
useBrowserName: true
}
}); });
}; };