From e5c579017291a66d5ac5b57a19b311db3261fade Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 03:02:36 +0200 Subject: [PATCH 01/21] Add simple .drone.yml --- .drone.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..0198cfe --- /dev/null +++ b/.drone.yml @@ -0,0 +1,7 @@ +pipeline: + build: + image: node:8 + commands: + - npm install + - npm run test + - npm run build-prod -- 2.43.2 From 925c7a1942d11023e630f53d53aa67fc5bbcdf82 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 03:36:00 +0200 Subject: [PATCH 02/21] Use nightmare instead of chrome --- package-lock.json | 404 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + src/karma.conf.js | 4 +- 3 files changed, 398 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bd5f8d..10d160e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1777,7 +1777,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, - "optional": true, "requires": { "camelcase": "2.1.1", "map-obj": "1.0.1" @@ -1787,8 +1786,7 @@ "version": "2.1.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "optional": true + "dev": true } } }, @@ -1936,6 +1934,12 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, "clone-deep": { "version": "2.0.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/clone-deep/-/clone-deep-2.0.2.tgz", @@ -2042,6 +2046,15 @@ "delayed-stream": "1.0.0" } }, + "commander": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/commander/-/commander-1.0.4.tgz", + "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", + "dev": true, + "requires": { + "keypress": "0.1.0" + } + }, "commondir": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/commondir/-/commondir-1.0.1.tgz", @@ -2462,12 +2475,35 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "deep-defaults": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-defaults/-/deep-defaults-1.0.4.tgz", + "integrity": "sha1-Gpdi4rbI1qTpkxuO5/+M3O4dF1A=", + "dev": true, + "requires": { + "lodash": "3.0.1" + }, + "dependencies": { + "lodash": { + "version": "3.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/lodash/-/lodash-3.0.1.tgz", + "integrity": "sha1-FNSQKKOLx0AkHRHi7NV+wG1zwZo=", + "dev": true + } + } + }, "deep-equal": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-is/-/deep-is-0.1.3.tgz", @@ -2493,6 +2529,15 @@ "strip-bom": "3.0.0" } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.4" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/define-properties/-/define-properties-1.1.3.tgz", @@ -2805,6 +2850,34 @@ "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=", "dev": true }, + "electron": { + "version": "1.8.8", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron/-/electron-1.8.8.tgz", + "integrity": "sha1-qQzdsHUpH0lXaZPm9ci7RDkwHK4=", + "dev": true, + "requires": { + "@types/node": "8.9.5", + "electron-download": "3.3.0", + "extract-zip": "1.6.7" + } + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "fs-extra": "0.30.0", + "home-path": "1.0.6", + "minimist": "1.2.0", + "nugget": "2.0.1", + "path-exists": "2.1.0", + "rc": "1.2.8", + "semver": "5.5.1", + "sumchecker": "1.3.1" + } + }, "electron-to-chromium": { "version": "1.3.62", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz", @@ -2940,6 +3013,23 @@ "tapable": "1.0.0" } }, + "enqueue": { + "version": "1.0.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/enqueue/-/enqueue-1.0.2.tgz", + "integrity": "sha1-kBTpvOVw7pPKlubI5jrVTBkra8g=", + "dev": true, + "requires": { + "sliced": "0.0.5" + }, + "dependencies": { + "sliced": { + "version": "0.0.5", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=", + "dev": true + } + } + }, "ent": { "version": "2.2.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/ent/-/ent-2.2.0.tgz", @@ -3551,6 +3641,18 @@ } } }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/extsprintf/-/extsprintf-1.3.0.tgz", @@ -3590,6 +3692,15 @@ "websocket-driver": "0.7.0" } }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, "file-loader": { "version": "1.1.11", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/file-loader/-/file-loader-1.1.11.tgz", @@ -3785,6 +3896,19 @@ "null-check": "1.0.0" } }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4350,6 +4474,12 @@ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, + "function-source": { + "version": "0.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/function-source/-/function-source-0.1.0.tgz", + "integrity": "sha1-2RBL8+RniLVUaMAr8bL6vPj8Ga8=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/gauge/-/gauge-2.7.4.tgz", @@ -4737,6 +4867,12 @@ "minimalistic-crypto-utils": "1.0.1" } }, + "home-path": { + "version": "1.0.6", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/home-path/-/home-path-1.0.6.tgz", + "integrity": "sha1-1UncJGU4in+GZyQsWzFYjSmvKfw=", + "dev": true + }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/hosted-git-info/-/hosted-git-info-2.7.1.tgz", @@ -5045,7 +5181,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, - "optional": true, "requires": { "repeating": "2.0.1" } @@ -5799,6 +5934,15 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsprim/-/jsprim-1.4.1.tgz", @@ -6061,6 +6205,16 @@ "karma-jasmine": "1.1.2" } }, + "karma-nightmare": { + "version": "0.4.15", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/karma-nightmare/-/karma-nightmare-0.4.15.tgz", + "integrity": "sha1-mWwF17TpSCMp+MsFTvHNJnH3fA8=", + "dev": true, + "requires": { + "make-dir": "1.3.0", + "nightmare": "2.10.0" + } + }, "karma-source-map-support": { "version": "1.3.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", @@ -6070,6 +6224,12 @@ "source-map-support": "0.5.9" } }, + "keypress": { + "version": "0.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/keypress/-/keypress-0.1.0.tgz", + "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=", + "dev": true + }, "killable": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/killable/-/killable-1.0.0.tgz", @@ -6082,6 +6242,15 @@ "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true }, + "klaw": { + "version": "1.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -6463,7 +6632,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, - "optional": true, "requires": { "camelcase-keys": "2.1.0", "decamelize": "1.2.0", @@ -6598,6 +6766,15 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minstache": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/minstache/-/minstache-1.2.0.tgz", + "integrity": "sha1-/xzEA6woRPaNvxjGYhKb5+sO/EE=", + "dev": true, + "requires": { + "commander": "1.0.4" + } + }, "mississippi": { "version": "2.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/mississippi/-/mississippi-2.0.0.tgz", @@ -6770,6 +6947,35 @@ "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", "dev": true }, + "nightmare": { + "version": "2.10.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/nightmare/-/nightmare-2.10.0.tgz", + "integrity": "sha1-6cXVkLspb1loX9SCGML7rER2eyE=", + "dev": true, + "requires": { + "debug": "2.6.9", + "deep-defaults": "1.0.4", + "defaults": "1.0.3", + "electron": "1.8.8", + "enqueue": "1.0.2", + "function-source": "0.1.0", + "jsesc": "0.5.0", + "minstache": "1.2.0", + "mkdirp": "0.5.1", + "once": "1.4.0", + "rimraf": "2.6.2", + "sliced": "1.0.1", + "split2": "2.2.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, "no-case": { "version": "2.3.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/no-case/-/no-case-2.3.2.tgz", @@ -7087,6 +7293,21 @@ "boolbase": "1.0.0" } }, + "nugget": { + "version": "2.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "requires": { + "debug": "2.6.9", + "minimist": "1.2.0", + "pretty-bytes": "1.0.4", + "progress-stream": "1.2.0", + "request": "2.88.0", + "single-line-log": "1.1.2", + "throttleit": "0.0.2" + } + }, "null-check": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/null-check/-/null-check-1.0.0.tgz", @@ -7154,6 +7375,12 @@ } } }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/object-visit/-/object-visit-1.0.1.tgz", @@ -7565,6 +7792,12 @@ "sha.js": "2.4.11" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/performance-now/-/performance-now-2.1.0.tgz", @@ -7713,6 +7946,16 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, "pretty-error": { "version": "2.1.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pretty-error/-/pretty-error-2.1.1.tgz", @@ -7735,6 +7978,16 @@ "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=", "dev": true }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "requires": { + "speedometer": "0.1.4", + "through2": "0.2.3" + } + }, "promise": { "version": "7.3.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/promise/-/promise-7.3.1.tgz", @@ -8009,6 +8262,18 @@ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/rc/-/rc-1.2.8.tgz", + "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", + "dev": true, + "requires": { + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/read-cache/-/read-cache-1.0.0.tgz", @@ -8079,7 +8344,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, - "optional": true, "requires": { "indent-string": "2.1.0", "strip-indent": "1.0.1" @@ -8747,12 +9011,27 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, "slash": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "sliced": { + "version": "1.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "dev": true + }, "slide": { "version": "1.1.6", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/slide/-/slide-1.1.6.tgz", @@ -9180,6 +9459,12 @@ "wbuf": "1.7.3" } }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/split-string/-/split-string-3.1.0.tgz", @@ -9189,6 +9474,33 @@ "extend-shallow": "3.0.2" } }, + "split2": { + "version": "2.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/split2/-/split2-2.2.0.tgz", + "integrity": "sha1-GGsldbz4PoW30YRldWI47k7kJJM=", + "dev": true, + "requires": { + "through2": "2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9368,11 +9680,16 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, - "optional": true, "requires": { "get-stdin": "4.0.1" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "style-loader": { "version": "0.21.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/style-loader/-/style-loader-0.21.0.tgz", @@ -9439,6 +9756,16 @@ "when": "3.6.4" } }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "es6-promise": "4.2.4" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/supports-color/-/supports-color-5.5.0.tgz", @@ -9472,12 +9799,54 @@ "inherits": "2.0.3" } }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "through2": { + "version": "0.2.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "xtend": "2.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "thunky": { "version": "1.0.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/thunky/-/thunky-1.0.2.tgz", @@ -9596,8 +9965,7 @@ "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true + "dev": true }, "trim-right": { "version": "1.0.1", @@ -10714,6 +11082,15 @@ "integrity": "sha1-5pgYneSd0qGMxWh7BeF8jkOUMCA=", "dev": true }, + "xtend": { + "version": "2.1.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "0.4.0" + } + }, "xxhashjs": { "version": "0.2.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xxhashjs/-/xxhashjs-0.2.2.tgz", @@ -10766,6 +11143,15 @@ "camelcase": "4.1.0" } }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index ddb98f6..0235d03 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "karma-coverage-istanbul-reporter": "~2.0.0", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", + "karma-nightmare": "~0.4.15", "protractor": "~5.4.0", "ts-node": "~5.0.1", "tslint": "~5.9.1", diff --git a/src/karma.conf.js b/src/karma.conf.js index 4a9730b..743ef97 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.js @@ -7,7 +7,7 @@ module.exports = function (config) { frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), - require('karma-chrome-launcher'), + require('karma-nightmare'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') @@ -25,7 +25,7 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['Nightmare'], singleRun: false }); }; -- 2.43.2 From 304164e498f87c46ee01f3f0fcc7448cbdb13ae6 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:02:32 +0200 Subject: [PATCH 03/21] Try launching puppeteer instead of nightmare --- package-lock.json | 60 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + src/karma.conf.js | 5 +++- 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 10d160e..5133b8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1114,6 +1114,12 @@ "dev": true, "optional": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/asynckit/-/asynckit-0.4.0.tgz", @@ -7978,6 +7984,12 @@ "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=", "dev": true }, + "progress": { + "version": "2.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, "progress-stream": { "version": "1.2.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/progress-stream/-/progress-stream-1.2.0.tgz", @@ -8099,6 +8111,12 @@ "ipaddr.js": "1.8.0" } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/prr/-/prr-1.0.1.tgz", @@ -8156,6 +8174,48 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/punycode/-/punycode-2.1.1.tgz", "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, + "puppeteer": { + "version": "1.7.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/puppeteer/-/puppeteer-1.7.0.tgz", + "integrity": "sha1-7cuiMApQhHICwPGf0V56lhcf870=", + "dev": true, + "requires": { + "debug": "3.1.0", + "extract-zip": "1.6.7", + "https-proxy-agent": "2.2.1", + "mime": "2.3.1", + "progress": "2.0.0", + "proxy-from-env": "1.0.0", + "rimraf": "2.6.2", + "ws": "5.2.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/mime/-/mime-2.3.1.tgz", + "integrity": "sha1-sWIcVNY7l8R9PP5/chX31kUXw2k=", + "dev": true + }, + "ws": { + "version": "5.2.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/ws/-/ws-5.2.2.tgz", + "integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=", + "dev": true, + "requires": { + "async-limiter": "1.0.0" + } + } + } + }, "q": { "version": "1.4.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/q/-/q-1.4.1.tgz", diff --git a/package.json b/package.json index 0235d03..637c06a 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "karma-jasmine-html-reporter": "^0.2.2", "karma-nightmare": "~0.4.15", "protractor": "~5.4.0", + "puppeteer": "~1.7.0", "ts-node": "~5.0.1", "tslint": "~5.9.1", "typescript": "2.9.2" diff --git a/src/karma.conf.js b/src/karma.conf.js index 743ef97..c184be9 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.js @@ -1,11 +1,14 @@ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html +process.env.CHROME_BIN = require('puppeteer').executablePath(); + module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ + require('karma-chrome-launcher'), require('karma-jasmine'), require('karma-nightmare'), require('karma-jasmine-html-reporter'), @@ -25,7 +28,7 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Nightmare'], + browsers: ['ChromeHeadless'], singleRun: false }); }; -- 2.43.2 From 35f19beda08abba62ec55ec76057f58f5ed34c0c Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:12:48 +0200 Subject: [PATCH 04/21] Try installing some additional library --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 0198cfe..e96d2cf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,6 +2,7 @@ pipeline: build: image: node:8 commands: + - apt-get install -yq libx11-xcb1 - npm install - npm run test - npm run build-prod -- 2.43.2 From f49cbe7adebd5361c00c7a4c3dd367a4bcb3533b Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:21:24 +0200 Subject: [PATCH 05/21] Update package list first --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index e96d2cf..0d46f2a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,6 +2,7 @@ pipeline: build: image: node:8 commands: + - apt-get update - apt-get install -yq libx11-xcb1 - npm install - npm run test -- 2.43.2 From 780f123f1570acae0e4bbe78e1b234f6405d552d Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:40:14 +0200 Subject: [PATCH 06/21] Install even more libs --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 0d46f2a..e5c250e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ pipeline: image: node:8 commands: - apt-get update - - apt-get install -yq libx11-xcb1 + - apt-get install -yq libx11-xcb1 libx11composite1 libx11cursor1 libx11damage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 - npm install - npm run test - npm run build-prod -- 2.43.2 From a223fa3a362047b2a06d8a43ce867fd9daea5304 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:46:30 +0200 Subject: [PATCH 07/21] Fix lib names --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index e5c250e..6fe05d6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ pipeline: image: node:8 commands: - apt-get update - - apt-get install -yq libx11-xcb1 libx11composite1 libx11cursor1 libx11damage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 + - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 - npm install - npm run test - npm run build-prod -- 2.43.2 From 8f28eee6db511e472705924fd9a7bf64689818d5 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 04:55:29 +0200 Subject: [PATCH 08/21] Add libnss3 --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 6fe05d6..61f73ad 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ pipeline: image: node:8 commands: - apt-get update - - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 + - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 - npm install - npm run test - npm run build-prod -- 2.43.2 From bf27baa7f53a14147d5a271bb21b767501f7eb61 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 05:08:24 +0200 Subject: [PATCH 09/21] Add libasound2 --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 61f73ad..cda1553 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ pipeline: image: node:8 commands: - apt-get update - - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 + - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 libasound2 - npm install - npm run test - npm run build-prod -- 2.43.2 From a8ddf4ce380714de3fa84e1a90734f5425ea64fe Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 05:30:13 +0200 Subject: [PATCH 10/21] Add --no-sandbox flag --- .drone.yml | 2 +- package.json | 1 + src/karma.conf.js | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index cda1553..a3af774 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,5 +5,5 @@ pipeline: - apt-get update - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 libasound2 - npm install - - npm run test + - npm run test-no-sandbox - npm run build-prod diff --git a/package.json b/package.json index 637c06a..a7b92bd 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "build": "ng build --delete-output-path", "build-prod": "ng build --prod --optimization --aot --delete-output-path --build-optimizer", "test": "ng test", + "test-no-sandbox": "ng test --browsers ChromeHeadlessNoSandbox", "lint": "ng lint", "e2e": "ng e2e", "postinstall": "npm rebuild node-sass" diff --git a/src/karma.conf.js b/src/karma.conf.js index c184be9..5b5db64 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.js @@ -29,6 +29,12 @@ module.exports = function (config) { logLevel: config.LOG_INFO, autoWatch: true, browsers: ['ChromeHeadless'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, singleRun: false }); }; -- 2.43.2 From b6b810c9fcc4a9a3cdcc9a553e2084d134e5c705 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 05:40:26 +0200 Subject: [PATCH 11/21] Getting closer: add --watch=false to test --- .drone.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index a3af774..799cbbf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,5 +5,5 @@ pipeline: - apt-get update - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 libasound2 - npm install - - npm run test-no-sandbox + - npm run test:ci - npm run build-prod diff --git a/package.json b/package.json index a7b92bd..d408a3a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "build": "ng build --delete-output-path", "build-prod": "ng build --prod --optimization --aot --delete-output-path --build-optimizer", "test": "ng test", - "test-no-sandbox": "ng test --browsers ChromeHeadlessNoSandbox", + "test:ci": "ng test --browsers ChromeHeadlessNoSandbox --watch=false", "lint": "ng lint", "e2e": "ng e2e", "postinstall": "npm rebuild node-sass" -- 2.43.2 From 5fdc16d3db3c41b714ef858644de9649ccf097f6 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 22:45:15 +0200 Subject: [PATCH 12/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41347b0..d9a6cc0 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is a short introduction to the awesome Convertorizr hosted at https://conv.friedli.info/. -Deployment is automated with Gitlab CI. Usage is self-explanatory. What else do you need to know? +Continuous integration is automated with Drone CI. Usage is self-explanatory. What else do you need to know? The source code is hosted at https://gittr.ch/manuel/converter.git. Contact the author at manuel-convertorizr|at|fritteli.ch. -- 2.43.2 From e7ea6f4378dc2feddd7b2cfd897dcaaa713d56ad Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 22:53:15 +0200 Subject: [PATCH 13/21] Adding dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo diff --git a/foo b/foo new file mode 100644 index 0000000..e69de29 -- 2.43.2 From 4776e3be2b70de5af1c45076342f8f1638b29dda Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 22:58:29 +0200 Subject: [PATCH 14/21] Delete dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 foo diff --git a/foo b/foo deleted file mode 100644 index e69de29..0000000 -- 2.43.2 From b95a3f0bf4eab1f9bcd965f17bb78472f3508293 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:03:24 +0200 Subject: [PATCH 15/21] Adding dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo diff --git a/foo b/foo new file mode 100644 index 0000000..e69de29 -- 2.43.2 From 644d87e27733c6c057bd7244a164dc3974b5b6c7 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:05:51 +0200 Subject: [PATCH 16/21] Delete dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 foo diff --git a/foo b/foo deleted file mode 100644 index e69de29..0000000 -- 2.43.2 From 4f6d50ad9520cccfb14273fe7efab2457c4b70d5 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:11:29 +0200 Subject: [PATCH 17/21] Adding dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo diff --git a/foo b/foo new file mode 100644 index 0000000..e69de29 -- 2.43.2 From 5d07c72d1cd88ab4124b6b4a8c3091c2181a1a2f Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:14:52 +0200 Subject: [PATCH 18/21] Delete dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 foo diff --git a/foo b/foo deleted file mode 100644 index e69de29..0000000 -- 2.43.2 From 576c2fcfe16ef2dc9febc3fa17c8b0b1e462ee6d Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:20:47 +0200 Subject: [PATCH 19/21] Adding dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo diff --git a/foo b/foo new file mode 100644 index 0000000..e69de29 -- 2.43.2 From e06d8cbda4a2099d833db44c04f7ba6d24d29322 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 1 Sep 2018 23:21:45 +0200 Subject: [PATCH 20/21] Delete dummy file to trigger build --- foo | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 foo diff --git a/foo b/foo deleted file mode 100644 index e69de29..0000000 -- 2.43.2 From fd9d69c3fae2a13c579ae83c78752d205d63b7a2 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Mon, 3 Sep 2018 23:49:00 +0200 Subject: [PATCH 21/21] Add build badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d9a6cc0..f405646 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is a short introduction to the awesome Convertorizr hosted at https://conv.friedli.info/. -Continuous integration is automated with Drone CI. Usage is self-explanatory. What else do you need to know? +Continuous integration is automated with Drone CI ([Build status of develop branch](https://ci.gittr.ch/api/badges/manuel/converter/status.svg?branch=develop)). Usage is self-explanatory. What else do you need to know? The source code is hosted at https://gittr.ch/manuel/converter.git. Contact the author at manuel-convertorizr|at|fritteli.ch. -- 2.43.2