From 265dda9edbd633457d3f7adbc19a34c7d10caeeb Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 31 Jul 2019 15:50:38 -0400 Subject: [PATCH 01/46] =?UTF-8?q?=F0=9F=94=A5=20bump=20version=20of=20appl?= =?UTF-8?q?ier=20and=20change=20site=20to=20apply=20=F0=9F=94=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openshift-applier/{site.yml => apply.yml} | 0 .openshift-applier/requirements.yml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .openshift-applier/{site.yml => apply.yml} (100%) diff --git a/.openshift-applier/site.yml b/.openshift-applier/apply.yml similarity index 100% rename from .openshift-applier/site.yml rename to .openshift-applier/apply.yml diff --git a/.openshift-applier/requirements.yml b/.openshift-applier/requirements.yml index 88b7618..4000503 100644 --- a/.openshift-applier/requirements.yml +++ b/.openshift-applier/requirements.yml @@ -4,5 +4,5 @@ # From 'openshift-applier' - src: https://github.com/redhat-cop/openshift-applier scm: git - version: v2.0.9 + version: v2.0.10 name: openshift-applier From 8c6fddea680d30fa1c78eecd4c71802ffb2c40d3 Mon Sep 17 00:00:00 2001 From: donal Date: Thu, 1 Aug 2019 12:54:45 -0400 Subject: [PATCH 02/46] =?UTF-8?q?=F0=9F=A6=84=20update=20to=20the=20Jenkin?= =?UTF-8?q?sfile=20=F0=9F=A6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 51daa29..7c3abbf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { environment { // Global Vars NAMESPACE_PREFIX="" - GITLAB_DOMAIN = "gitlab.apps.change.me.com" + GITLAB_DOMAIN = "" GITLAB_PROJECT = "" PIPELINES_NAMESPACE = "${NAMESPACE_PREFIX}-ci-cd" @@ -73,16 +73,13 @@ pipeline { } } steps { - // git branch: 'develop', - // credentialsId: 'jenkins-git-creds', - // url: 'https://gitlab-${NAMESPACE_PREFIX}-ci-cd.apps.somedomain.com/${NAMESPACE_PREFIX}/todolist.git' sh 'printenv' echo '### Install deps ###' sh 'npm install' echo '### Running tests ###' - sh 'npm run test:all:ci' + // sh 'npm run test:all:ci' echo '### Running build ###' sh 'npm run build:ci' @@ -96,11 +93,10 @@ pipeline { post { always { archive "**" - junit 'test-report.xml' - junit 'reports/server/mocha/test-results.xml' + // ADD TESTS REPORTS HERE + // publish html - // Notify slack or some such } success { echo "Git tagging" @@ -178,29 +174,5 @@ pipeline { waitUnit: 'sec' } } - stage("e2e test") { - agent { - node { - label "jenkins-slave-npm" - } - } - when { - expression { GIT_BRANCH ==~ /(.*master|.*develop)/ } - } - steps { - unstash 'source' - - echo '### Install deps ###' - sh 'npm install' - - echo '### Running end to end tests ###' - sh 'npm run e2e:ci' - } - post { - always { - junit 'reports/e2e/specs/*.xml' - } - } - } } } From 87ad2e96224a4eff27bcc1fa8b674434c624905a Mon Sep 17 00:00:00 2001 From: donal Date: Thu, 1 Aug 2019 12:58:46 -0400 Subject: [PATCH 03/46] =?UTF-8?q?=F0=9F=A6=84=20update=20to=20the=20Jenkin?= =?UTF-8?q?sfile=20=F0=9F=A6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7c3abbf..e98031a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -104,7 +104,7 @@ pipeline { git config --global user.email "jenkins@jmail.com" git config --global user.name "jenkins-ci" git tag -a ${JENKINS_TAG} -m "JENKINS automated commit" - # git push https://${GIT_CREDENTIALS_USR}:${GIT_CREDENTIALS_PSW}@${GITLAB_DOMAIN}/${GITLAB_PROJECT}/${APP_NAME}.git --tags + git push https://${GIT_CREDENTIALS_USR}:${GIT_CREDENTIALS_PSW}@${GITLAB_DOMAIN}/${GITLAB_PROJECT}/${APP_NAME}.git --tags ''' } failure { From add7afbdcc9a65ee13129badd94a7629401c04dd Mon Sep 17 00:00:00 2001 From: donal Date: Fri, 2 Aug 2019 14:29:35 -0400 Subject: [PATCH 04/46] =?UTF-8?q?FIX=20nexus=20and=20git=20credentials=20?= =?UTF-8?q?=F0=9F=98=8D=F0=9F=8F=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e98031a..89f2f38 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,7 @@ pipeline { JOB_NAME = "${JOB_NAME}".replace("/", "-") GIT_SSL_NO_VERIFY = true - GIT_CREDENTIALS = credentials('jenkins-git-creds') + GIT_CREDENTIALS = credentials("${NAMESPACE_PREFIX}-ci-cd-gitlab-auth") } // The options directive is for configuration that applies to the whole job. diff --git a/package.json b/package.json index 8817f44..d652e4a 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "mongo:start": "docker start mongo-local", "mongo:start-ide": "mongod --dbpath /projects/mongo", "mongo:stop-ide": "killall mongod", - "prepare-nexus": "curl -X POST -u admin:admin123 -H 'Content-Type: application/json' -H 'Accept: application/json' -d @nexus.json http://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script && curl -X POST -u admin:admin123 -H 'Content-Type: text/plain' -H 'Accept: application/json' http://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script/zip/run", + "prepare-nexus": "curl -X POST -u admin:admin123 -H 'Content-Type: application/json' -H 'Accept: application/json' -d @nexus.json https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script && curl -X POST -u admin:admin123 -H 'Content-Type: text/plain' -H 'Accept: application/json' https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script/zip/run", "publish": "curl -vvv -u admin:admin123 --upload-file package-contents.zip http://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${JOB_NAME}.${BUILD_NUMBER}/package-contents.zip", "publish:get": "curl -vvv http://admin:admin123@${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${BUILD_TAG}/package-contents.zip -o package-contents.zip" }, From 0d093e25df3db6b80a17e1175b216b00023e307f Mon Sep 17 00:00:00 2001 From: mike hepburn Date: Wed, 7 Aug 2019 00:46:07 +1000 Subject: [PATCH 05/46] =?UTF-8?q?=F0=9F=8E=A0=20GITLAB=5FPROJECT=20was=20w?= =?UTF-8?q?rong=20=F0=9F=8E=A0=20(#1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 89f2f38..51f8bbb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { // Global Vars NAMESPACE_PREFIX="" GITLAB_DOMAIN = "" - GITLAB_PROJECT = "" + GIT_USERNAME = "" PIPELINES_NAMESPACE = "${NAMESPACE_PREFIX}-ci-cd" APP_NAME = "todolist" @@ -104,7 +104,7 @@ pipeline { git config --global user.email "jenkins@jmail.com" git config --global user.name "jenkins-ci" git tag -a ${JENKINS_TAG} -m "JENKINS automated commit" - git push https://${GIT_CREDENTIALS_USR}:${GIT_CREDENTIALS_PSW}@${GITLAB_DOMAIN}/${GITLAB_PROJECT}/${APP_NAME}.git --tags + git push https://${GIT_CREDENTIALS_USR}:${GIT_CREDENTIALS_PSW}@${GITLAB_DOMAIN}/${GITLAB_USERNAME}/${APP_NAME}.git --tags ''' } failure { From 4746584471ac6dc3cea3a2c24d565a03bdf0b3ef Mon Sep 17 00:00:00 2001 From: mike hepburn Date: Fri, 9 Aug 2019 02:57:09 +1000 Subject: [PATCH 06/46] =?UTF-8?q?=F0=9F=8E=A0=20GITLAB=5FPROJECT=20was=20w?= =?UTF-8?q?rong=20=F0=9F=8E=A0=20(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 51f8bbb..d1deaa4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { // Global Vars NAMESPACE_PREFIX="" GITLAB_DOMAIN = "" - GIT_USERNAME = "" + GITLAB_USERNAME = "" PIPELINES_NAMESPACE = "${NAMESPACE_PREFIX}-ci-cd" APP_NAME = "todolist" From 5698f44280a4c5eb4d4d05241abfc14ad8df4b35 Mon Sep 17 00:00:00 2001 From: Shahein Moussavi Date: Fri, 9 Aug 2019 13:34:36 -0400 Subject: [PATCH 07/46] Background selenium server and run e2e scripts seqentially --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d652e4a..6baeae0 100644 --- a/package.json +++ b/package.json @@ -100,9 +100,9 @@ "test:server:ci": "export MOCHA_FILE='reports/server/mocha/test-results.xml' && export NODE_ENV=ci && node_modules/.bin/nyc node_modules/.bin/mocha 'server/**/*.spec.js' -R mocha-junit-reporter --exit", "test:all": "npm run test:client && npm run test:server", "test:all:ci": "npm run test:client && npm run test:server:ci", - "selenium": "java -Dwebdriver.chrome.driver=\"$(pwd)/node_modules/chromedriver/lib/chromedriver/chromedriver\" -jar $(pwd)/node_modules/selenium-server/lib/runner/selenium-server-standalone-3.11.0.jar -port 8084", + "selenium": "nohup java -Dwebdriver.chrome.driver=\"$(pwd)/node_modules/chromedriver/lib/chromedriver/chromedriver\" -jar $(pwd)/node_modules/selenium-server/lib/runner/selenium-server-standalone-3.11.0.jar -port 8084 0<&- &>/dev/null &", "e2e": "export SELENIUM_PORT=443; export SELENIUM_SSL=1; export SELENIUM_HOST=$(oc get routes/$(oc get routes | grep 8084 | cut -d ' ' -f 1) --template='{{.spec.host}}') && export E2E_TEST_ROUTE=$(oc get routes/$(oc get routes | grep 8080 | cut -d ' ' -f 1) --template='{{.spec.host}}') && echo \"testing app on https://${E2E_TEST_ROUTE} \n with selenium address ${SELENIUM_HOST}\" && vue-cli-service e2e --env jenkins --url https://${E2E_TEST_ROUTE}", - "e2e:jenkins": "npm-run-all -p -r selenium e2e:ci", + "e2e:jenkins": "npm-run-all selenium e2e:ci", "e2e:ci": "vue-cli-service e2e --env jenkins --url http://${E2E_TEST_ROUTE}", "lint": "vue-cli-service lint", "lint:ci": "vue-cli-service lint --format checkstyle > eslint-report.xml", From 3fd82e03af0613afe36f4fc45b22b97b737654af Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Fri, 16 Aug 2019 08:52:31 +1000 Subject: [PATCH 08/46] =?UTF-8?q?=F0=9F=90=98=20fixes=20#486=20-=20e2e=20r?= =?UTF-8?q?unning=20in=20ide=20=F0=9F=90=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 6baeae0..98d6b21 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,7 @@ "e2e": "export SELENIUM_PORT=443; export SELENIUM_SSL=1; export SELENIUM_HOST=$(oc get routes/$(oc get routes | grep 8084 | cut -d ' ' -f 1) --template='{{.spec.host}}') && export E2E_TEST_ROUTE=$(oc get routes/$(oc get routes | grep 8080 | cut -d ' ' -f 1) --template='{{.spec.host}}') && echo \"testing app on https://${E2E_TEST_ROUTE} \n with selenium address ${SELENIUM_HOST}\" && vue-cli-service e2e --env jenkins --url https://${E2E_TEST_ROUTE}", "e2e:jenkins": "npm-run-all selenium e2e:ci", "e2e:ci": "vue-cli-service e2e --env jenkins --url http://${E2E_TEST_ROUTE}", + "e2e:ide": "vue-cli-service e2e --url=http://localhost:8080 --env jenkins", "lint": "vue-cli-service lint", "lint:ci": "vue-cli-service lint --format checkstyle > eslint-report.xml", "jshint": "./node_modules/.bin/grunt jshint", From a03c5ff713d4eb860dc935d463c059a676819ffc Mon Sep 17 00:00:00 2001 From: donal Date: Fri, 16 Aug 2019 11:43:01 +0100 Subject: [PATCH 09/46] =?UTF-8?q?=F0=9F=8E=88=20FIX=20-=20stop=20all=20nod?= =?UTF-8?q?e=20process=20=F0=9F=8E=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 98d6b21..0f38416 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "serve": "vue-cli-service serve --open", "serve:all": "npm-run-all -p -r serve dev:server", "start": "node server/app.js", + "stop:all": "killall node", "clean": "rm -rf reports package-contents* reports dist ", "build:client": "vue-cli-service build", "build:ci": "cp src/config/openshift.js src/config/index.js && npm run build:client && mkdir -p package-contents && cp -vr dist server Dockerfile package.json package-contents", From ba51f1d38527f756a0623d2de5683cbcd87c0109 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 17:15:42 +1000 Subject: [PATCH 10/46] Update Jenkinsfile for 4.3 --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d1deaa4..3ec342b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -161,7 +161,7 @@ pipeline { echo '### set env vars and image for deployment ###' sh ''' oc set env dc ${APP_NAME} NODE_ENV=${NODE_ENV} - oc set image dc/${APP_NAME} ${APP_NAME}=docker-registry.default.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} + oc set image dc/${APP_NAME} ${APP_NAME}=image-registry.openshift-image-registry.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} oc rollout latest dc/${APP_NAME} ''' echo '### Verify OCP Deployment ###' From fe4758def73423f809299fbd8d479a9ab1f6084a Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 17:28:08 +1000 Subject: [PATCH 11/46] ocp 4.3 udpdates --- Jenkinsfile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3ec342b..3db055c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -165,13 +165,14 @@ pipeline { oc rollout latest dc/${APP_NAME} ''' echo '### Verify OCP Deployment ###' - openshiftVerifyDeployment depCfg: env.APP_NAME, - namespace: env.PROJECT_NAMESPACE, - replicaCount: '1', - verbose: 'false', - verifyReplicaCount: 'true', - waitTime: '', - waitUnit: 'sec' + script { + openshift.withProject("${PROJECT_NAMESPACE}") { + openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") + openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { + return (it.object().status.phase == "Running") + } + } + } } } } From e77f49fa20fc2ea5af61ecf7af0da782ac07ba4a Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 17:33:26 +1000 Subject: [PATCH 12/46] 4.3 changes --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3db055c..37da85c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -165,7 +165,7 @@ pipeline { oc rollout latest dc/${APP_NAME} ''' echo '### Verify OCP Deployment ###' - script { + openshift.withCluster() { openshift.withProject("${PROJECT_NAMESPACE}") { openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { From 492fe73153bf0cb4dec5cabb0d6d0b764130db7c Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 17:36:10 +1000 Subject: [PATCH 13/46] 4.3 changes --- Jenkinsfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 37da85c..9af2f0f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -165,11 +165,13 @@ pipeline { oc rollout latest dc/${APP_NAME} ''' echo '### Verify OCP Deployment ###' - openshift.withCluster() { - openshift.withProject("${PROJECT_NAMESPACE}") { - openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") - openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { - return (it.object().status.phase == "Running") + script { + openshift.withCluster() { + openshift.withProject("${PROJECT_NAMESPACE}") { + openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") + openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { + return (it.object().status.phase == "Running") + } } } } From 14e2df2ebee5511926dd196e9ebf76a3281aabd9 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 17:42:46 +1000 Subject: [PATCH 14/46] 4.3 changes --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9af2f0f..f40e115 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -161,13 +161,13 @@ pipeline { echo '### set env vars and image for deployment ###' sh ''' oc set env dc ${APP_NAME} NODE_ENV=${NODE_ENV} - oc set image dc/${APP_NAME} ${APP_NAME}=image-registry.openshift-image-registry.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} - oc rollout latest dc/${APP_NAME} + oc set image dc/${APP_NAME} ${APP_NAME}=image-registry.openshift-image-registry.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} ''' - echo '### Verify OCP Deployment ###' + echo '### Rollout and Verify OCP Deployment ###' script { openshift.withCluster() { openshift.withProject("${PROJECT_NAMESPACE}") { + openshift.selector("dc", "${APP_NAME}").rollout().status("-w") openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { return (it.object().status.phase == "Running") From 7613540e5a6c2381aaf01605a3825255d9ce4ea0 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 29 Jan 2020 18:49:45 +1000 Subject: [PATCH 15/46] ocp 4.3 --- Jenkinsfile | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f40e115..eb0ce2f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -153,20 +153,18 @@ pipeline { expression { GIT_BRANCH ==~ /(.*master|.*develop)/ } } steps { - echo '### tag image for namespace ###' - sh ''' - oc project ${PROJECT_NAMESPACE} - oc tag ${PIPELINES_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} ${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} - ''' - echo '### set env vars and image for deployment ###' - sh ''' - oc set env dc ${APP_NAME} NODE_ENV=${NODE_ENV} - oc set image dc/${APP_NAME} ${APP_NAME}=image-registry.openshift-image-registry.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG} - ''' - echo '### Rollout and Verify OCP Deployment ###' script { openshift.withCluster() { openshift.withProject("${PROJECT_NAMESPACE}") { + echo '### tag image for namespace ###' + openshift.tag("${PIPELINES_NAMESPACE}/${APP_NAME}:${JENKINS_TAG}", "${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG}") + + echo '### set env vars and image for deployment ###' + openshift.raw("set","env","dc/${APP_NAME}","NODE_ENV=${NODE_ENV}") + openshift.raw("set", "image", "dc/${APP_NAME}", "${APP_NAME}=image-registry.openshift-image-registry.svc:5000/${PROJECT_NAMESPACE}/${APP_NAME}:${JENKINS_TAG}") + + echo '### Rollout and Verify OCP Deployment ###' + openshift.selector("dc", "${APP_NAME}").rollout().latest() openshift.selector("dc", "${APP_NAME}").rollout().status("-w") openshift.selector("dc", "${APP_NAME}").scale("--replicas=1") openshift.selector("dc", "${APP_NAME}").related('pods').untilEach("1".toInteger()) { From c2239870c61fbc7f58502ff4fa0ea563cc7d4421 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Thu, 30 Jan 2020 21:50:07 +1100 Subject: [PATCH 16/46] =?UTF-8?q?=F0=9F=94=A5=204.3=20changes=20?= =?UTF-8?q?=F0=9F=94=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openshift-applier/requirements.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.openshift-applier/requirements.yml b/.openshift-applier/requirements.yml index 4000503..7e56ff6 100644 --- a/.openshift-applier/requirements.yml +++ b/.openshift-applier/requirements.yml @@ -2,7 +2,8 @@ # to support the operation of CASL provisioning/runs. # From 'openshift-applier' -- src: https://github.com/redhat-cop/openshift-applier +#- src: https://github.com/redhat-cop/openshift-applier +- src: https://github.com/eformat/openshift-applier scm: git - version: v2.0.10 + version: v2.0.10-4.3 name: openshift-applier From 6da1434e905f1e8816c44edf84e04858dd377028 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Mon, 3 Feb 2020 20:22:05 +1000 Subject: [PATCH 17/46] tls edge route --- .openshift-applier/templates/todolist-deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.openshift-applier/templates/todolist-deploy.yml b/.openshift-applier/templates/todolist-deploy.yml index 2b73fbd..844b335 100644 --- a/.openshift-applier/templates/todolist-deploy.yml +++ b/.openshift-applier/templates/todolist-deploy.yml @@ -91,6 +91,8 @@ objects: spec: port: targetPort: 9000-tcp + tls: + termination: edge to: kind: Service name: '${NAME}' From 6f6157abb166ce4758c8427634c9e2da250ea3fc Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Mon, 3 Feb 2020 21:21:57 +1000 Subject: [PATCH 18/46] =?UTF-8?q?=F0=9F=AA=92=20https=20e2e=20tests=20?= =?UTF-8?q?=F0=9F=AA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0f38416..ffc4305 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "selenium": "nohup java -Dwebdriver.chrome.driver=\"$(pwd)/node_modules/chromedriver/lib/chromedriver/chromedriver\" -jar $(pwd)/node_modules/selenium-server/lib/runner/selenium-server-standalone-3.11.0.jar -port 8084 0<&- &>/dev/null &", "e2e": "export SELENIUM_PORT=443; export SELENIUM_SSL=1; export SELENIUM_HOST=$(oc get routes/$(oc get routes | grep 8084 | cut -d ' ' -f 1) --template='{{.spec.host}}') && export E2E_TEST_ROUTE=$(oc get routes/$(oc get routes | grep 8080 | cut -d ' ' -f 1) --template='{{.spec.host}}') && echo \"testing app on https://${E2E_TEST_ROUTE} \n with selenium address ${SELENIUM_HOST}\" && vue-cli-service e2e --env jenkins --url https://${E2E_TEST_ROUTE}", "e2e:jenkins": "npm-run-all selenium e2e:ci", - "e2e:ci": "vue-cli-service e2e --env jenkins --url http://${E2E_TEST_ROUTE}", + "e2e:ci": "vue-cli-service e2e --env jenkins --url https://${E2E_TEST_ROUTE}", "e2e:ide": "vue-cli-service e2e --url=http://localhost:8080 --env jenkins", "lint": "vue-cli-service lint", "lint:ci": "vue-cli-service lint --format checkstyle > eslint-report.xml", From 3c0ec1600a016e349d14ce2f91a32e552fcb2ebf Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Tue, 4 Feb 2020 06:37:19 +1000 Subject: [PATCH 19/46] http perf-test --- tasks/perf-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/perf-test.js b/tasks/perf-test.js index ec79fcd..78540ba 100755 --- a/tasks/perf-test.js +++ b/tasks/perf-test.js @@ -21,7 +21,7 @@ const test = { nfr : 60 }; const dev = { - domain : 'http://' + process.env.E2E_TEST_ROUTE, + domain : 'https://' + process.env.E2E_TEST_ROUTE, dir : './reports/server/perf/', route : '/api/todos/', nfr : 60 From 90b506652f47b21147df5b70a8ebf485ceb65244 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Wed, 5 Feb 2020 07:35:51 +1100 Subject: [PATCH 20/46] =?UTF-8?q?=F0=9F=8D=BA=20fix=20images=20?= =?UTF-8?q?=F0=9F=8D=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 24 ++++++++++++++++++++++++ src/assets/ComponentsLabs.png | Bin 240757 -> 240762 bytes src/assets/logo.png | Bin 6848 -> 6849 bytes 3 files changed, 24 insertions(+) diff --git a/.gitattributes b/.gitattributes index fcadb2c..4092668 100755 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,25 @@ * text eol=lf + +# (binary is a macro for -text -diff) +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.ico binary +*.mov binary +*.mp4 binary +*.mp3 binary +*.flv binary +*.fla binary +*.swf binary +*.gz binary +*.zip binary +*.7z binary +*.ttf binary +*.eot binary +*.woff binary +*.pyc binary +*.pdf binary +*.ez binary +*.bz2 binary +*.swp binary \ No newline at end of file diff --git a/src/assets/ComponentsLabs.png b/src/assets/ComponentsLabs.png index aac0d607fee858112fcde7ac21cc94af4acdfcdd..b1a49a96d7009c473bfdf3fad4c51d49d0e3a560 100644 GIT binary patch delta 51 zcmex*gYVZ3KGx0vKX=}ZEUHb6yqh(f?AJ2#wrA)wZqLwX3f|4gyM6a7rpJ{)dR_|i Gb$0;w0~0F% delta 42 zcmV+_0M-Bc*bepB4g`r%PDil?C4#dnf{ delta 13 UcmX?Tdcc&WGr-S%BkLY103_f9>Hq)$ From e913438be0ffe4662d83b24b5f662bcc7d81d44d Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Tue, 11 Feb 2020 14:53:22 +1000 Subject: [PATCH 21/46] =?UTF-8?q?=F0=9F=A6=90=20v4=20image=20registry=20?= =?UTF-8?q?=F0=9F=A6=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openshift-applier/templates/todolist-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift-applier/templates/todolist-deploy.yml b/.openshift-applier/templates/todolist-deploy.yml index 844b335..fdbcd33 100644 --- a/.openshift-applier/templates/todolist-deploy.yml +++ b/.openshift-applier/templates/todolist-deploy.yml @@ -43,7 +43,7 @@ objects: name: '${NAME}' spec: containers: - - image: 'docker-registry.default.svc:5000/${NAMESPACE}/${NAME}:${APP_TAG}' + - image: 'image-registry.openshift-image-registry.svc:5000/${NAMESPACE}/${NAME}:${APP_TAG}' imagePullPolicy: Always name: '${NAME}' env: From ffac12dd56a36bb49f93ccddea75dde64b2aae34 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Tue, 11 Feb 2020 19:41:39 +1000 Subject: [PATCH 22/46] keep 5 builds --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index eb0ce2f..3e3c29e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -23,7 +23,7 @@ pipeline { // The options directive is for configuration that applies to the whole job. options { - buildDiscarder(logRotator(numToKeepStr:'10')) + buildDiscarder(logRotator(numToKeepStr:'5')) timeout(time: 15, unit: 'MINUTES') ansiColor('xterm') timestamps() From 9f7d66d8da9eaf1e5ada3dfe1aa1f0d75f946a39 Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Thu, 13 Feb 2020 15:20:30 +1100 Subject: [PATCH 23/46] =?UTF-8?q?=F0=9F=90=9C=20dont=20archive=20all=20bak?= =?UTF-8?q?e=20artefacts=20-=20chews=20up=20space=20=F0=9F=90=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3e3c29e..de706d2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -136,11 +136,12 @@ pipeline { oc start-build ${APP_NAME} --from-dir=package-contents/ --follow ''' } - post { - always { - archive "**" - } - } + // this post step chews up space. uncomment if you want all bake artefacts archived + // post { + //always { + // archive "**" + //} + //} } stage("node-deploy") { From 0ae5125378c5aeee628e26e5cbfe5b6db2874f0d Mon Sep 17 00:00:00 2001 From: Cansu Kavili Date: Wed, 2 Sep 2020 11:22:35 +0300 Subject: [PATCH 24/46] mongodb version updated --- .openshift-applier/templates/mongodb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift-applier/templates/mongodb.yml b/.openshift-applier/templates/mongodb.yml index 2adce6e..69d4e44 100644 --- a/.openshift-applier/templates/mongodb.yml +++ b/.openshift-applier/templates/mongodb.yml @@ -193,5 +193,5 @@ parameters: - name: MONGODB_VERSION displayName: Version of MongoDB Image description: Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest). - value: '3.2' + value: '3.4' required: true From 0f1bc600917cbf61fab7449407680e215528c248 Mon Sep 17 00:00:00 2001 From: Cansu Kavili Date: Wed, 21 Oct 2020 08:59:45 +0200 Subject: [PATCH 25/46] =?UTF-8?q?=F0=9F=90=9E=20content=20updated=20for=20?= =?UTF-8?q?OCP4=20=20=F0=9F=90=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openshift-applier/requirements.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.openshift-applier/requirements.yml b/.openshift-applier/requirements.yml index 7e56ff6..e926f19 100644 --- a/.openshift-applier/requirements.yml +++ b/.openshift-applier/requirements.yml @@ -3,7 +3,7 @@ # From 'openshift-applier' #- src: https://github.com/redhat-cop/openshift-applier -- src: https://github.com/eformat/openshift-applier +- src: https://github.com/redhat-cop/openshift-applier scm: git - version: v2.0.10-4.3 + version: v2.0.10 name: openshift-applier From 8be10a5b6c8272b3d8c640cc5861470f34ad37c9 Mon Sep 17 00:00:00 2001 From: Cansu Kavili Date: Wed, 21 Oct 2020 09:00:08 +0200 Subject: [PATCH 26/46] =?UTF-8?q?=F0=9F=90=9E=20content=20updated=20for=20?= =?UTF-8?q?OCP4=20=20=F0=9F=90=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .openshift-applier/requirements.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.openshift-applier/requirements.yml b/.openshift-applier/requirements.yml index e926f19..4000503 100644 --- a/.openshift-applier/requirements.yml +++ b/.openshift-applier/requirements.yml @@ -2,7 +2,6 @@ # to support the operation of CASL provisioning/runs. # From 'openshift-applier' -#- src: https://github.com/redhat-cop/openshift-applier - src: https://github.com/redhat-cop/openshift-applier scm: git version: v2.0.10 From 9f86ef39e45ceae82a7c3a8b9b354b0c0a84e0cf Mon Sep 17 00:00:00 2001 From: Cansu Kavili Date: Wed, 21 Oct 2020 09:05:43 +0200 Subject: [PATCH 27/46] applier version bumped --- .openshift-applier/requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift-applier/requirements.yml b/.openshift-applier/requirements.yml index 4000503..5420c67 100644 --- a/.openshift-applier/requirements.yml +++ b/.openshift-applier/requirements.yml @@ -4,5 +4,5 @@ # From 'openshift-applier' - src: https://github.com/redhat-cop/openshift-applier scm: git - version: v2.0.10 + version: v2.1.2 name: openshift-applier From 7609422e5dfcfceb84e25d1bd8a6666bfa8997ef Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Fri, 4 Dec 2020 14:47:21 -0500 Subject: [PATCH 28/46] updated mongodb version to latest --- .openshift-applier/templates/mongodb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift-applier/templates/mongodb.yml b/.openshift-applier/templates/mongodb.yml index 69d4e44..8c945b6 100644 --- a/.openshift-applier/templates/mongodb.yml +++ b/.openshift-applier/templates/mongodb.yml @@ -193,5 +193,5 @@ parameters: - name: MONGODB_VERSION displayName: Version of MongoDB Image description: Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest). - value: '3.4' + value: 'latest' required: true From 5e62eba12e0d2bd52f34799df97566fe9b91882d Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Fri, 4 Dec 2020 15:31:30 -0500 Subject: [PATCH 29/46] updating credential secret name to git-auth --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index de706d2..c153b47 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,7 @@ pipeline { JOB_NAME = "${JOB_NAME}".replace("/", "-") GIT_SSL_NO_VERIFY = true - GIT_CREDENTIALS = credentials("${NAMESPACE_PREFIX}-ci-cd-gitlab-auth") + GIT_CREDENTIALS = credentials("${NAMESPACE_PREFIX}-ci-cd-git-auth") } // The options directive is for configuration that applies to the whole job. From b62df922f84caa860b8c55000cbcde25b0cc233c Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Fri, 4 Dec 2020 16:47:06 -0500 Subject: [PATCH 30/46] added url encoding for password --- Jenkinsfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index c153b47..54c92e7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -100,11 +100,14 @@ pipeline { } success { echo "Git tagging" + script { + env.ENCODED_PSW=URLEncoder.encode(GIT_CREDENTIALS_PSW, "UTF-8") + } sh''' git config --global user.email "jenkins@jmail.com" git config --global user.name "jenkins-ci" git tag -a ${JENKINS_TAG} -m "JENKINS automated commit" - git push https://${GIT_CREDENTIALS_USR}:${GIT_CREDENTIALS_PSW}@${GITLAB_DOMAIN}/${GITLAB_USERNAME}/${APP_NAME}.git --tags + git push https://${GIT_CREDENTIALS_USR}:${ENCODED_PSW}@${GITLAB_DOMAIN}/${GITLAB_USERNAME}/${APP_NAME}.git --tags ''' } failure { From 46f37505f54e570b3ae276db90d9d483af0cde2c Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Mon, 7 Dec 2020 22:43:21 -0500 Subject: [PATCH 31/46] updated jenkins label --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 54c92e7..4276678 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -69,7 +69,7 @@ pipeline { stage("node-build") { agent { node { - label "jenkins-slave-npm" + label "jenkins-agent-npm" } } steps { From 0a95862920b8bf3f02f3f648f78ffeac341f71d7 Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Mon, 14 Dec 2020 11:30:34 -0500 Subject: [PATCH 32/46] updated to add git auth secret --- .openshift-applier/params/ocp-pipeline | 1 + 1 file changed, 1 insertion(+) diff --git a/.openshift-applier/params/ocp-pipeline b/.openshift-applier/params/ocp-pipeline index 0869ee6..121c218 100644 --- a/.openshift-applier/params/ocp-pipeline +++ b/.openshift-applier/params/ocp-pipeline @@ -1,3 +1,4 @@ PIPELINE_SOURCE_REPOSITORY_URL= PIPELINE_SOURCE_REPOSITORY_REF=develop +PIPELINE_SOURCE_SECRET=git-auth NAME=todolist \ No newline at end of file From df5607c96b6f647f023b9df017e3aa2edd18be71 Mon Sep 17 00:00:00 2001 From: Haitham Shahin Date: Fri, 8 Jan 2021 11:13:56 -0500 Subject: [PATCH 33/46] update mongo version --- .openshift-applier/templates/mongodb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift-applier/templates/mongodb.yml b/.openshift-applier/templates/mongodb.yml index 8c945b6..57035f7 100644 --- a/.openshift-applier/templates/mongodb.yml +++ b/.openshift-applier/templates/mongodb.yml @@ -193,5 +193,5 @@ parameters: - name: MONGODB_VERSION displayName: Version of MongoDB Image description: Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest). - value: 'latest' + value: '3.6' required: true From 68d7f86e4fd56f3a056739fc8855e3178de093f5 Mon Sep 17 00:00:00 2001 From: Jorge Tudela Date: Mon, 11 Jan 2021 13:31:52 +0100 Subject: [PATCH 34/46] Dont valdate NExus SSL certs --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ffc4305..5160e92 100644 --- a/package.json +++ b/package.json @@ -120,9 +120,9 @@ "mongo:start": "docker start mongo-local", "mongo:start-ide": "mongod --dbpath /projects/mongo", "mongo:stop-ide": "killall mongod", - "prepare-nexus": "curl -X POST -u admin:admin123 -H 'Content-Type: application/json' -H 'Accept: application/json' -d @nexus.json https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script && curl -X POST -u admin:admin123 -H 'Content-Type: text/plain' -H 'Accept: application/json' https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script/zip/run", - "publish": "curl -vvv -u admin:admin123 --upload-file package-contents.zip http://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${JOB_NAME}.${BUILD_NUMBER}/package-contents.zip", - "publish:get": "curl -vvv http://admin:admin123@${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${BUILD_TAG}/package-contents.zip -o package-contents.zip" + "prepare-nexus": "curl -k -X POST -u admin:admin123 -H 'Content-Type: application/json' -H 'Accept: application/json' -d @nexus.json https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script && curl -k -X POST -u admin:admin123 -H 'Content-Type: text/plain' -H 'Accept: application/json' https://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/service/siesta/rest/v1/script/zip/run", + "publish": "curl -k -vvv -u admin:admin123 --upload-file package-contents.zip http://${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${JOB_NAME}.${BUILD_NUMBER}/package-contents.zip", + "publish:get": "curl -k -vvv http://admin:admin123@${NEXUS_SERVICE_HOST}:${NEXUS_SERVICE_PORT}/repository/zip/com/redhat/todolist/${BUILD_TAG}/package-contents.zip -o package-contents.zip" }, "private": true, "nyc": { From 327e0017f5317483965f496dc8c7144a46e1de6b Mon Sep 17 00:00:00 2001 From: Mike Hepburn Date: Tue, 12 Jan 2021 15:13:51 +1000 Subject: [PATCH 35/46] =?UTF-8?q?=F0=9F=90=8D=20lets=20not=20loose=20the?= =?UTF-8?q?=20logo=20!!=20=F0=9F=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/RHOIL_LogoBadge_RGB_Default.png | Bin 0 -> 38085 bytes src/views/Home.vue | 2 +- src/views/Todo.vue | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 src/assets/RHOIL_LogoBadge_RGB_Default.png diff --git a/src/assets/RHOIL_LogoBadge_RGB_Default.png b/src/assets/RHOIL_LogoBadge_RGB_Default.png new file mode 100644 index 0000000000000000000000000000000000000000..6e4b8f9f64ae7bf118390ef31db299a2be096c29 GIT binary patch literal 38085 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 Tgky0A00000NkvXXu0mjfEjJwE literal 0 HcmV?d00001 diff --git a/src/views/Home.vue b/src/views/Home.vue index 49464e0..287a91b 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -2,7 +2,7 @@

Welcome 👋

diff --git a/src/views/Todo.vue b/src/views/Todo.vue index 98971b4..5f19044 100644 --- a/src/views/Todo.vue +++ b/src/views/Todo.vue @@ -14,7 +14,7 @@ From 28efecc2ab6fc390ec80e8e031f8ede0f42ff796 Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 4 Aug 2021 15:47:18 +0100 Subject: [PATCH 36/46] ADD - chart for front end for do500 updates --- Dockerfile-vue | 4 ++ chart/Chart.yaml | 11 ++++ chart/templates/_helpers.tpl | 57 +++++++++++++++++++++ chart/templates/configmap.yaml | 12 +++++ chart/templates/deploymentconfig.yaml | 74 +++++++++++++++++++++++++++ chart/templates/route.yaml | 36 +++++++++++++ chart/templates/service.yaml | 19 +++++++ chart/values.yaml | 14 +++++ 8 files changed, 227 insertions(+) create mode 100644 Dockerfile-vue create mode 100644 chart/Chart.yaml create mode 100644 chart/templates/_helpers.tpl create mode 100644 chart/templates/configmap.yaml create mode 100644 chart/templates/deploymentconfig.yaml create mode 100644 chart/templates/route.yaml create mode 100644 chart/templates/service.yaml create mode 100644 chart/values.yaml diff --git a/Dockerfile-vue b/Dockerfile-vue new file mode 100644 index 0000000..15d119c --- /dev/null +++ b/Dockerfile-vue @@ -0,0 +1,4 @@ +FROM registry.access.redhat.com/ubi8/nodejs-12 +ADD dist . +RUN npm i http-server +CMD npx http-server -p 8080 diff --git a/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 0000000..87b24e8 --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v2 +name: todolist +description: DO500 App - todolist Frontend +type: application +version: 1.0.6 +appVersion: 1.0.0 +home: https://petbattle.github.io/helm-charts +icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 +maintainers: + - name: springdo + - name: eformat diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl new file mode 100644 index 0000000..60ab0cd --- /dev/null +++ b/chart/templates/_helpers.tpl @@ -0,0 +1,57 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "todolist.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "todolist.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "todolist.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "todolist.labels" -}} +helm.sh/chart: {{ include "todolist.chart" . }} +{{ include "todolist.selectorLabels" . }} +{{- if .Values.image_version }} +app.kubernetes.io/version: {{ .Values.image_version | quote }} +{{- else }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Selector labels +*/}} +{{- define "todolist.selectorLabels" -}} +app.kubernetes.io/name: {{ include "todolist.name" . }} +app.kubernetes.io/component: {{ include "todolist.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/part-of: {{ include "todolist.name" . }} +deploymentconfig: {{ include "todolist.fullname" . }} +{{- end -}} diff --git a/chart/templates/configmap.yaml b/chart/templates/configmap.yaml new file mode 100644 index 0000000..3c12d45 --- /dev/null +++ b/chart/templates/configmap.yaml @@ -0,0 +1,12 @@ +{{- if .Values.config_map }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: "{{ include "todolist.fullname" . }}-environment" + labels: + {{- include "todolist.labels" . | nindent 4 }} +data: + config.json: |- + {{ .Values.config_map }} +{{- end }} \ No newline at end of file diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deploymentconfig.yaml new file mode 100644 index 0000000..8c4914a --- /dev/null +++ b/chart/templates/deploymentconfig.yaml @@ -0,0 +1,74 @@ +apiVersion: apps.openshift.io/v1 +kind: DeploymentConfig +metadata: + labels: + {{- include "todolist.labels" . | nindent 4 }} + name: {{ include "todolist.fullname" . }} +spec: + replicas: {{ .Values.replicas }} + revisionHistoryLimit: 10 + selector: + {{- include "todolist.selectorLabels" . | nindent 4 }} + strategy: + activeDeadlineSeconds: 21600 + resources: {} + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + annotations: + rollme: {{ randAlphaNum 5 | quote }} + labels: + {{- include "todolist.selectorLabels" . | nindent 8 }} + spec: + containers: + - image: "{{ .Values.image_repository }}/{{ .Values.image_namespace }}/{{ .Values.image_name }}:{{ .Values.image_version }}" + imagePullPolicy: Always + name: {{ include "todolist.name" . }} + ports: + - containerPort: 8080 + protocol: TCP + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + {{- if .Values.config_map }} + - mountPath: "/opt/app-root/src/assets/configuration/" + name: "{{ include "todolist.fullname" . }}-config" + {{- end }} + {{- if .Values.fathom }} + - mountPath: "/opt/app-root/src/assets/analytics/" + name: "fathom-config" + {{- end }} + readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 10 + timeoutSeconds: 1 + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 + volumes: + {{- if .Values.config_map }} + - name: "{{ include "todolist.fullname" . }}-config" + configMap: + name: "{{ include "todolist.fullname" . }}-environment" + defaultMode: 420 + {{- end }} + {{- if .Values.fathom }} + - name: "fathom-config" + configMap: + name: "fathom-client-config" + defaultMode: 420 + {{- end }} + test: false + triggers: + - type: ConfigChange \ No newline at end of file diff --git a/chart/templates/route.yaml b/chart/templates/route.yaml new file mode 100644 index 0000000..6f99e25 --- /dev/null +++ b/chart/templates/route.yaml @@ -0,0 +1,36 @@ +{{- if .Values.route }} +--- +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: {{ include "todolist.fullname" . }} + labels: + {{- include "todolist.labels" . | nindent 4 }} + annotations: + haproxy.router.openshift.io/balance: "roundrobin" + {{- if .Values.a_b_deploy.svc_name }} + # haproxy.router.openshift.io/disable_cookies: "true" + {{- end }} +spec: + port: + targetPort: 8080-tcp + to: + kind: Service + name: {{ include "todolist.fullname" . }} + weight: 100 + tls: + insecureEdgeTerminationPolicy: Redirect + termination: edge + wildcardPolicy: None + {{- if .Values.a_b_deploy.svc_name }} + alternateBackends: + - kind: Service + name: {{ .Values.a_b_deploy.svc_name }} + weight: {{ .Values.a_b_deploy.weight }} + {{- end }} +status: + ingress: + - conditions: + - status: 'True' + type: Admitted +{{ end }} diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml new file mode 100644 index 0000000..1a9d677 --- /dev/null +++ b/chart/templates/service.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "todolist.fullname" . }} + labels: + {{- include "todolist.labels" . | nindent 4 }} +spec: + ports: + - port: 8080 + protocol: TCP + targetPort: 8080 + name: 8080-tcp + selector: + {{- include "todolist.selectorLabels" . | nindent 4 }} + sessionAffinity: None + type: ClusterIP +status: + loadBalancer: {} diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 0000000..ad6dc48 --- /dev/null +++ b/chart/values.yaml @@ -0,0 +1,14 @@ +app_name: todolist +replicas: 1 +# Docker deets +image_repository: quay.io +image_name: do500-todolist +image_namespace: rht-labs +# likely over written by the Argo definition +image_version: latest +a_b_deploy: + weight: 100 + # svc_name: +fathom: false +# OCP route +route: true From 646d9f7089b0af153e363c993d0ed1bf2a39499e Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 4 Aug 2021 16:02:28 +0100 Subject: [PATCH 37/46] =?UTF-8?q?=F0=9F=90=A4=20ADD=20-=20helm=20repo=20to?= =?UTF-8?q?=20github=20for=20simples=20=F0=9F=90=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/Chart.yaml | 2 +- docs/index.html | 0 docs/index.yaml | 19 +++++++++++++++++++ docs/todolist-1.0.1.tgz | Bin 0 -> 2238 bytes 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 docs/index.html create mode 100644 docs/index.yaml create mode 100644 docs/todolist-1.0.1.tgz diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 87b24e8..3762b59 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: todolist description: DO500 App - todolist Frontend type: application -version: 1.0.6 +version: 1.0.1 appVersion: 1.0.0 home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/docs/index.yaml b/docs/index.yaml new file mode 100644 index 0000000..d482c3e --- /dev/null +++ b/docs/index.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +entries: + todolist: + - apiVersion: v2 + appVersion: 1.0.0 + created: "2021-08-04T16:01:34.566979+01:00" + description: DO500 App - todolist Frontend + digest: 13d2cfeebabc811a9662fa064d5ff9b11d37a40f1d795561d521fd55df2e7919 + home: https://petbattle.github.io/helm-charts + icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 + maintainers: + - name: springdo + - name: eformat + name: todolist + type: application + urls: + - todolist-1.0.1.tgz + version: 1.0.1 +generated: "2021-08-04T16:01:34.565939+01:00" diff --git a/docs/todolist-1.0.1.tgz b/docs/todolist-1.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d0ab052d382265561f9813d1c4a72998f7e73025 GIT binary patch literal 2238 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 M|Am(X&j2t008_nURsaA1 literal 0 HcmV?d00001 From 96e6f08ce348d134f82405c00029b4ac126c96e7 Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 4 Aug 2021 16:04:16 +0100 Subject: [PATCH 38/46] =?UTF-8?q?=F0=9F=8D=8C=20kickoff=20jenkins=20?= =?UTF-8?q?=F0=9F=90=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 579ca38064c3b0620865f94aa9b7375c33881d29 Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 4 Aug 2021 16:47:02 +0100 Subject: [PATCH 39/46] readiness probe updated --- chart/templates/deploymentconfig.yaml | 4 ++++ docs/index.yaml | 6 +++--- docs/todolist-1.0.1.tgz | Bin 2238 -> 2279 bytes 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deploymentconfig.yaml index 8c4914a..8f107f2 100644 --- a/chart/templates/deploymentconfig.yaml +++ b/chart/templates/deploymentconfig.yaml @@ -46,10 +46,14 @@ spec: name: "fathom-config" {{- end }} readinessProbe: + failureThreshold: 3 httpGet: path: / port: 8080 + scheme: HTTP initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 timeoutSeconds: 1 dnsPolicy: ClusterFirst restartPolicy: Always diff --git a/docs/index.yaml b/docs/index.yaml index d482c3e..1c2cdd5 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,9 +3,9 @@ entries: todolist: - apiVersion: v2 appVersion: 1.0.0 - created: "2021-08-04T16:01:34.566979+01:00" + created: "2021-08-04T16:46:06.880935+01:00" description: DO500 App - todolist Frontend - digest: 13d2cfeebabc811a9662fa064d5ff9b11d37a40f1d795561d521fd55df2e7919 + digest: 27209c84e2a57548ad8eff1f1d9f6c2d896eea3d1d5fa35ecee10623cbfbe59f home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 maintainers: @@ -16,4 +16,4 @@ entries: urls: - todolist-1.0.1.tgz version: 1.0.1 -generated: "2021-08-04T16:01:34.565939+01:00" +generated: "2021-08-04T16:46:06.878155+01:00" diff --git a/docs/todolist-1.0.1.tgz b/docs/todolist-1.0.1.tgz index d0ab052d382265561f9813d1c4a72998f7e73025..770f37c99308805234fda3c4b7556dd2055832c9 100644 GIT binary patch delta 2192 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 From 334e8190697336e5dfc81a330ce4395bc059605b Mon Sep 17 00:00:00 2001 From: donal Date: Wed, 4 Aug 2021 16:51:23 +0100 Subject: [PATCH 40/46] =?UTF-8?q?=F0=9F=90=A9=20rollme=20removedfrom=20dc?= =?UTF-8?q?=20=F0=9F=90=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/templates/deploymentconfig.yaml | 2 -- docs/index.yaml | 6 +++--- docs/todolist-1.0.1.tgz | Bin 2279 -> 2259 bytes 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deploymentconfig.yaml index 8f107f2..97c78ef 100644 --- a/chart/templates/deploymentconfig.yaml +++ b/chart/templates/deploymentconfig.yaml @@ -21,8 +21,6 @@ spec: type: Rolling template: metadata: - annotations: - rollme: {{ randAlphaNum 5 | quote }} labels: {{- include "todolist.selectorLabels" . | nindent 8 }} spec: diff --git a/docs/index.yaml b/docs/index.yaml index 1c2cdd5..d3160c0 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,9 +3,9 @@ entries: todolist: - apiVersion: v2 appVersion: 1.0.0 - created: "2021-08-04T16:46:06.880935+01:00" + created: "2021-08-04T16:50:44.291978+01:00" description: DO500 App - todolist Frontend - digest: 27209c84e2a57548ad8eff1f1d9f6c2d896eea3d1d5fa35ecee10623cbfbe59f + digest: ce7a8ec8672d0a3c1cb002894ab816fed816046714718cb4f76de15cc42ab49d home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 maintainers: @@ -16,4 +16,4 @@ entries: urls: - todolist-1.0.1.tgz version: 1.0.1 -generated: "2021-08-04T16:46:06.878155+01:00" +generated: "2021-08-04T16:50:44.290765+01:00" diff --git a/docs/todolist-1.0.1.tgz b/docs/todolist-1.0.1.tgz index 770f37c99308805234fda3c4b7556dd2055832c9..57ee87dd7ff674c3a98e9a97a83e526e698304bb 100644 GIT binary patch delta 2163 zcmV-(2#ojV5z`TncYp1JL;=gi?qYwt3s9soCAgvC@seqZ)+`s#?wjH`jt{3(_dAZ` z?(cXy89y6MNAdVzGMOG8Jc~z@crtwk@x5!(L!}|6pT%FjR@b=y6JiDb4YlD)Ca@X@ ztSFj4M^PNbL53#PydXDp^6nsx;ixDeggSEIwN{c)X2DYBn18^Ms4&TJSRl<9k-%ud zX<5!9u7*n#d6?QrGXYPn#G0F}7%^=|6?17&r%o(Ismh1t@bG0koqqrQ;Xll)aUB0; z^=caAj7wr%qBcnof@F4iQ)n(1nQ8`bu5`{Q@PE}>2ed9Q0ag@(r_5RxtlEZ;g2&#O zhoJ`lD<(=b|9_JNa3}sphh6-SUp(ReL5LN_MF$xg9VScyqu@E5sPqywWQZ2CIa}a` z#zGlRO0N_6y=3c%t7^te%G5y|hmE|=lqpz>3Fsw-g3V0u90b2au?Dq54IeZoLJ6}q z&=TQDFBD`r=aM^kdNB=11tT;Ru#4G6hJ{e;Bmnq;e1EZ|1V(Wj06Yh?O1)0OoY7L{ z3Cx)=7(9n}$EToGNf@}F36L)F4}$qNHTWmY3+L0}#S%q<+C)^`Pb#d1;L^8mulG%E!`=iuL$OwToYs^a_);2{6KIfR(YVTB!f`6lz?)b^BVa+fw!<3Z)d-5ULD1#LG-a~OPM!f(u=Bh9b-If1t8c`E>0J8J<`l`Olf zZhv>HQ1M)X%~0I7!;WpR)1J1w{d3j7!zZwXoTUhZzYkz=G58WhsXSNGD`{>~(ldA| zw#Sdma_AIK;OYvvOhuXX7!`pN*u!8@U`k5=S_!T=x59g?A+YnTD5A>-v-Z5vbPHEk zJ6`()zn6*-+Oc!DDDUZ`=CE`_jLiC_Q_Ehd7&iAUAubg%Ul{_GR1AXUEuce7fe&A=65gUyT2SIrAp5E zV#gbsOc`~({Ma@4F{!8j^KQ&pabJhQJI{adsN4U&n8Z*0-$PI*r~19W$XQ`Q5`Tta zuysK+3NE?K5;%5jZ&(rJNGxN-?CHzr6&UP+zYyh$Yb7mg2LV)>%?bfy!1XG9qYIU!A^dDn2{S;QBc38Ga(vQ6Xk4!!I?xp^?|)xRrsF64 zKLoYm&5FWAsz7O$d`_^^U(ZAdf1#oCKuDe)DaAj<@oc!sHxnMq(gI&>FN zRw1KGouXCx+K(t9xLlkv&GO2309+F46%&nwQ8kgXk7uP`U;^WVZ#HB9l7DQ)xL`A} zHA6f{RZ=6R)&ig`GDdicnyaj{h`$hj@6`$b>V)8RYwx$E_MU&4BVT$)0@V9zsX7w6 z8+|_#f@|0lS5~%r_{}{eTwf1wOgA@4u`Y}i7`?WQojSuoOF-@Bz4{9;X3$a7m;BAxZY%tK@fTUZB!3fY;;HG^-b?;m z1vRpaOEl(Gs~NW4KWAK&8qb#+%~FXhfk|t2NmTrVlx%5I_?Xxp>kB;qlP=M!{qy>8qa0q^Se*Sd@lPzvkLdPwIVA8>bL#_g@3=S3Y+1Y4bxI{S|2M(_>o%3YC+^D&C+fLoz#|lj5P4r0~+Di zM0HyC;qCqX40)X{yr#-OZ&Zc}OviE17ohznc5xHl5%#xPP`@HLO6md3zG@O0s=xdI zkmid;RbaxZ>iMSTc**1fAG;%aSnBEj-3PJz{1ALc|35mI9Dj7r|D&h>|9BYcz}M}4 z-_hR(MgQU8z59-O^Cn=Qrv58W4@^o$E-hCQmaNd~YR2Ut z=t*LmkIGT~1-Z^>&u?8JYUwEse9p2ZQOb}|x2!CMdCE7yjQt~av?y*6&sr}r3*7LSEgcy}>c`g?kO{Iyg z?z|OTAyka;?YS=T+qyY$HRLGEIT2>T)m1I_vBA9u^=#yS<2`?W72vM>-@`b*@%?{% z_>})2f_7f<*7$pbwBAmS4f1ZBPx_9<-834s`^i>by{}6kG}dcJbN5e5n*>-jmHv$K p%V{gU2*t7=d>PX2c=6c#|3pvpM1NfRZvX%Q|Nnux0K)(<001NPQPThb delta 2184 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 KgoXex0098E!(N8~ From dce2053aa1c5899bc271bb62086d2d979c9d25c0 Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 22 Sep 2022 20:34:20 +0100 Subject: [PATCH 41/46] wip --- .buildignore | 0 .editorconfig | 0 .gitattributes | 0 .gitignore | 0 Dockerfile | 0 Gruntfile.js | 0 git-pull-all.sh | 0 package-lock.json | 732 +++++++++++++---------- package.json | 2 +- server/.jshintrc | 0 server/api/todo/index.js | 0 server/api/todo/todo.controller.js | 0 server/api/todo/todo.model.js | 0 server/api/todo/todo.spec.js | 0 server/app.js | 0 server/components/errors/index.js | 0 server/config/environment/ci-cd.js | 0 server/config/environment/ci.js | 0 server/config/environment/dev.js | 0 server/config/environment/development.js | 0 server/config/environment/index.js | 0 server/config/environment/production.js | 0 server/config/environment/test.js | 0 server/config/express.js | 0 server/config/local.env.sample.js | 0 server/config/seed.js | 0 server/mocks/mock-routes-config.json | 0 server/mocks/mock-routes.js | 0 server/mocks/mock-routes.spec.js | 0 server/routes.js | 0 server/views/404.html | 0 tasks/blanket.js | 0 tasks/perf-test.js | 0 33 files changed, 421 insertions(+), 313 deletions(-) mode change 100755 => 100644 .buildignore mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .gitattributes mode change 100755 => 100644 .gitignore mode change 100755 => 100644 Dockerfile mode change 100755 => 100644 Gruntfile.js mode change 100755 => 100644 git-pull-all.sh mode change 100755 => 100644 server/.jshintrc mode change 100755 => 100644 server/api/todo/index.js mode change 100755 => 100644 server/api/todo/todo.controller.js mode change 100755 => 100644 server/api/todo/todo.model.js mode change 100755 => 100644 server/api/todo/todo.spec.js mode change 100755 => 100644 server/app.js mode change 100755 => 100644 server/components/errors/index.js mode change 100755 => 100644 server/config/environment/ci-cd.js mode change 100755 => 100644 server/config/environment/ci.js mode change 100755 => 100644 server/config/environment/dev.js mode change 100755 => 100644 server/config/environment/development.js mode change 100755 => 100644 server/config/environment/index.js mode change 100755 => 100644 server/config/environment/production.js mode change 100755 => 100644 server/config/environment/test.js mode change 100755 => 100644 server/config/express.js mode change 100755 => 100644 server/config/local.env.sample.js mode change 100755 => 100644 server/config/seed.js mode change 100755 => 100644 server/mocks/mock-routes-config.json mode change 100755 => 100644 server/mocks/mock-routes.js mode change 100755 => 100644 server/mocks/mock-routes.spec.js mode change 100755 => 100644 server/routes.js mode change 100755 => 100644 server/views/404.html mode change 100755 => 100644 tasks/blanket.js mode change 100755 => 100644 tasks/perf-test.js diff --git a/.buildignore b/.buildignore old mode 100755 new mode 100644 diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.gitattributes b/.gitattributes old mode 100755 new mode 100644 diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile old mode 100755 new mode 100644 diff --git a/Gruntfile.js b/Gruntfile.js old mode 100755 new mode 100644 diff --git a/git-pull-all.sh b/git-pull-all.sh old mode 100755 new mode 100644 diff --git a/package-lock.json b/package-lock.json index 720a0e8..e7a1c45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1649,9 +1649,9 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { "delegates": "^1.0.0", @@ -4954,6 +4954,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -7366,9 +7372,9 @@ } }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -7479,29 +7485,14 @@ } }, "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { "globule": "^1.0.0" } }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "^1.0.0" - } - }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", @@ -7647,13 +7638,13 @@ } }, "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.4", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, @@ -8684,9 +8675,9 @@ "dev": true }, "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", "dev": true }, "indent-string": { @@ -8983,25 +8974,6 @@ "is-path-inside": "^1.0.0" } }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "dev": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" - } - }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", @@ -9105,12 +9077,6 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -10157,12 +10123,6 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, "jsonwebtoken": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.2.0.tgz", @@ -10512,12 +10472,6 @@ "integrity": "sha1-dRqnbBuWSwR+dtFPxyoJP8teLdA=", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -10535,12 +10489,6 @@ "lodash._isiterateecall": "^3.0.0" } }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.create": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", @@ -11648,7 +11596,8 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true + "dev": true, + "optional": true }, "nanomatch": { "version": "1.2.9", @@ -11825,31 +11774,159 @@ "dev": true }, "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": "2", + "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", "which": "1" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "dev": true + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dev": true, + "requires": { + "mime-db": "1.49.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, @@ -11903,9 +11980,9 @@ } }, "node-sass": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", - "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -11915,51 +11992,40 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.3.2", - "node-gyp": "^3.3.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "~2.79.0", - "sass-graph": "^2.2.4", + "request": "^2.88.0", + "sass-graph": "2.2.5", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "chalk": { @@ -11985,109 +12051,112 @@ "which": "^1.2.9" } }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "dev": true + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dev": true, "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "mime-db": "1.49.0" } }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "strip-ansi": { "version": "3.0.1", @@ -12104,10 +12173,20 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } } @@ -18714,6 +18793,12 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, "pstree.remy": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.6.tgz", @@ -19765,106 +19850,158 @@ } }, "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", "dev": true, "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "yargs": "^13.3.2" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "locate-path": "^3.0.0" } }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "lcid": "^1.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -20832,9 +20969,9 @@ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "requires": { "readable-stream": "^2.0.1" @@ -21098,13 +21235,13 @@ "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "dev": true, "requires": { "block-stream": "*", - "fstream": "^1.0.2", + "fstream": "^1.0.12", "inherits": "2" } }, @@ -21758,27 +21895,12 @@ "dev": true }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { - "glob": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "glob": "^7.1.2" } }, "tsconfig": { @@ -22164,6 +22286,23 @@ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -23020,43 +23159,12 @@ "dev": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "string-width": "^1.0.2 || 2" } }, "widest-line": { diff --git a/package.json b/package.json index 5160e92..2b137b7 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "mocha-cobertura-reporter": "1.0.4", "mocha-junit-reporter": "1.17.0", "mocha-lcov-reporter": "1.3.0", - "node-sass": "^4.7.2", + "node-sass": "^4.14.1", "npm-run-all": "^4.1.5", "nyc": "^11.6.0", "open": "0.0.5", diff --git a/server/.jshintrc b/server/.jshintrc old mode 100755 new mode 100644 diff --git a/server/api/todo/index.js b/server/api/todo/index.js old mode 100755 new mode 100644 diff --git a/server/api/todo/todo.controller.js b/server/api/todo/todo.controller.js old mode 100755 new mode 100644 diff --git a/server/api/todo/todo.model.js b/server/api/todo/todo.model.js old mode 100755 new mode 100644 diff --git a/server/api/todo/todo.spec.js b/server/api/todo/todo.spec.js old mode 100755 new mode 100644 diff --git a/server/app.js b/server/app.js old mode 100755 new mode 100644 diff --git a/server/components/errors/index.js b/server/components/errors/index.js old mode 100755 new mode 100644 diff --git a/server/config/environment/ci-cd.js b/server/config/environment/ci-cd.js old mode 100755 new mode 100644 diff --git a/server/config/environment/ci.js b/server/config/environment/ci.js old mode 100755 new mode 100644 diff --git a/server/config/environment/dev.js b/server/config/environment/dev.js old mode 100755 new mode 100644 diff --git a/server/config/environment/development.js b/server/config/environment/development.js old mode 100755 new mode 100644 diff --git a/server/config/environment/index.js b/server/config/environment/index.js old mode 100755 new mode 100644 diff --git a/server/config/environment/production.js b/server/config/environment/production.js old mode 100755 new mode 100644 diff --git a/server/config/environment/test.js b/server/config/environment/test.js old mode 100755 new mode 100644 diff --git a/server/config/express.js b/server/config/express.js old mode 100755 new mode 100644 diff --git a/server/config/local.env.sample.js b/server/config/local.env.sample.js old mode 100755 new mode 100644 diff --git a/server/config/seed.js b/server/config/seed.js old mode 100755 new mode 100644 diff --git a/server/mocks/mock-routes-config.json b/server/mocks/mock-routes-config.json old mode 100755 new mode 100644 diff --git a/server/mocks/mock-routes.js b/server/mocks/mock-routes.js old mode 100755 new mode 100644 diff --git a/server/mocks/mock-routes.spec.js b/server/mocks/mock-routes.spec.js old mode 100755 new mode 100644 diff --git a/server/routes.js b/server/routes.js old mode 100755 new mode 100644 diff --git a/server/views/404.html b/server/views/404.html old mode 100755 new mode 100644 diff --git a/tasks/blanket.js b/tasks/blanket.js old mode 100755 new mode 100644 diff --git a/tasks/perf-test.js b/tasks/perf-test.js old mode 100755 new mode 100644 From c6bd9fece3f3cfde409928ecb50816951bd230f9 Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 22 Sep 2022 23:18:32 +0100 Subject: [PATCH 42/46] =?UTF-8?q?=F0=9F=90=B3=20UPDATE=20-=20adding=20serv?= =?UTF-8?q?er=20in=20for=20demo=20=20=F0=9F=90=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/templates/deploymentconfig.yaml | 17 ++- chart/templates/route.yaml | 2 +- chart/templates/service.yaml | 6 +- chart/values.yaml | 6 ++ package-lock.json | 132 +++++++++++++++++------ public/index.html | 2 +- public/manifest.json | 4 +- server/api/hello/hello.controller.js | 28 +++++ server/api/hello/index.js | 12 +++ server/app.js | 3 +- server/config/environment/development.js | 4 +- server/routes.js | 1 + 12 files changed, 171 insertions(+), 46 deletions(-) create mode 100644 server/api/hello/hello.controller.js create mode 100644 server/api/hello/index.js diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deploymentconfig.yaml index 97c78ef..a857934 100644 --- a/chart/templates/deploymentconfig.yaml +++ b/chart/templates/deploymentconfig.yaml @@ -21,15 +21,28 @@ spec: type: Rolling template: metadata: + annotations: + rollme: {{ randAlphaNum 5 | quote }} labels: {{- include "todolist.selectorLabels" . | nindent 8 }} spec: containers: - image: "{{ .Values.image_repository }}/{{ .Values.image_namespace }}/{{ .Values.image_name }}:{{ .Values.image_version }}" imagePullPolicy: Always + env: + - name: NODE_ENV + value: "development" + - name: MESSAGE + value: "hello from the backend server 👋" + {{- range $key := .Values.env_vars }} + {{- if .value }} + - name: {{ .name }} + value: {{ .value | default "" | quote }} + {{- end }} + {{- end }} name: {{ include "todolist.name" . }} ports: - - containerPort: 8080 + - containerPort: 9000 protocol: TCP resources: {} terminationMessagePath: /dev/termination-log @@ -47,7 +60,7 @@ spec: failureThreshold: 3 httpGet: path: / - port: 8080 + port: 9000 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 10 diff --git a/chart/templates/route.yaml b/chart/templates/route.yaml index 6f99e25..10b08b0 100644 --- a/chart/templates/route.yaml +++ b/chart/templates/route.yaml @@ -13,7 +13,7 @@ metadata: {{- end }} spec: port: - targetPort: 8080-tcp + targetPort: 9000-tcp to: kind: Service name: {{ include "todolist.fullname" . }} diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml index 1a9d677..2a314cf 100644 --- a/chart/templates/service.yaml +++ b/chart/templates/service.yaml @@ -7,10 +7,10 @@ metadata: {{- include "todolist.labels" . | nindent 4 }} spec: ports: - - port: 8080 + - port: 9000 protocol: TCP - targetPort: 8080 - name: 8080-tcp + targetPort: 9000 + name: 9000-tcp selector: {{- include "todolist.selectorLabels" . | nindent 4 }} sessionAffinity: None diff --git a/chart/values.yaml b/chart/values.yaml index ad6dc48..73c13fb 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -12,3 +12,9 @@ a_b_deploy: fathom: false # OCP route route: true + +# message: "" + +env_vars: + # - name: MESSAGE + # value: '' \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e7a1c45..00c9f2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6497,7 +6497,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.1.1", @@ -6548,7 +6549,8 @@ "balanced-match": { "version": "0.4.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -6563,6 +6565,7 @@ "version": "0.0.9", "bundled": true, "dev": true, + "optional": true, "requires": { "inherits": "~2.0.0" } @@ -6571,6 +6574,7 @@ "version": "2.10.1", "bundled": true, "dev": true, + "optional": true, "requires": { "hoek": "2.x.x" } @@ -6579,6 +6583,7 @@ "version": "1.1.7", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^0.4.1", "concat-map": "0.0.1" @@ -6587,7 +6592,8 @@ "buffer-shims": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "caseless": { "version": "0.12.0", @@ -6604,12 +6610,14 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "combined-stream": { "version": "1.0.5", "bundled": true, "dev": true, + "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -6617,22 +6625,26 @@ "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "cryptiles": { "version": "2.0.5", "bundled": true, "dev": true, + "optional": true, "requires": { "boom": "2.x.x" } @@ -6672,7 +6684,8 @@ "delayed-stream": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", @@ -6704,7 +6717,8 @@ "extsprintf": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -6726,12 +6740,14 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "fstream": { "version": "1.0.11", "bundled": true, "dev": true, + "optional": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -6787,6 +6803,7 @@ "version": "7.1.2", "bundled": true, "dev": true, + "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6799,7 +6816,8 @@ "graceful-fs": { "version": "4.1.11", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "har-schema": { "version": "1.0.5", @@ -6827,6 +6845,7 @@ "version": "3.1.3", "bundled": true, "dev": true, + "optional": true, "requires": { "boom": "2.x.x", "cryptiles": "2.x.x", @@ -6837,7 +6856,8 @@ "hoek": { "version": "2.16.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "http-signature": { "version": "1.1.1", @@ -6854,6 +6874,7 @@ "version": "1.0.6", "bundled": true, "dev": true, + "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -6862,7 +6883,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.4", @@ -6874,6 +6896,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -6887,7 +6910,8 @@ "isarray": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "isstream": { "version": "0.1.2", @@ -6960,12 +6984,14 @@ "mime-db": { "version": "1.27.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "mime-types": { "version": "2.1.15", "bundled": true, "dev": true, + "optional": true, "requires": { "mime-db": "~1.27.0" } @@ -6974,6 +7000,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6981,12 +7008,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7041,7 +7070,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "oauth-sign": { "version": "0.8.2", @@ -7059,6 +7089,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7088,7 +7119,8 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "performance-now": { "version": "0.2.0", @@ -7099,7 +7131,8 @@ "process-nextick-args": { "version": "1.0.7", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "punycode": { "version": "1.4.1", @@ -7137,6 +7170,7 @@ "version": "2.2.9", "bundled": true, "dev": true, + "optional": true, "requires": { "buffer-shims": "~1.0.0", "core-util-is": "~1.0.0", @@ -7181,6 +7215,7 @@ "version": "2.6.1", "bundled": true, "dev": true, + "optional": true, "requires": { "glob": "^7.0.5" } @@ -7188,7 +7223,8 @@ "safe-buffer": { "version": "5.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "semver": { "version": "5.3.0", @@ -7212,6 +7248,7 @@ "version": "1.0.9", "bundled": true, "dev": true, + "optional": true, "requires": { "hoek": "2.x.x" } @@ -7245,6 +7282,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7255,6 +7293,7 @@ "version": "1.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.0.1" } @@ -7269,6 +7308,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7283,6 +7323,7 @@ "version": "2.2.1", "bundled": true, "dev": true, + "optional": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -7338,7 +7379,8 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "uuid": { "version": "3.0.1", @@ -7367,7 +7409,8 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -12379,7 +12422,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -12400,12 +12444,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -12420,17 +12466,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -12547,7 +12596,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -12559,6 +12609,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -12573,6 +12624,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -12580,12 +12632,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -12604,6 +12658,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -12684,7 +12739,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -12696,6 +12752,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -12781,7 +12838,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -12817,6 +12875,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -12836,6 +12895,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -12879,12 +12939,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -13263,6 +13325,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -14445,7 +14508,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", diff --git a/public/index.html b/public/index.html index fda1580..e53553a 100644 --- a/public/index.html +++ b/public/index.html @@ -9,7 +9,7 @@
diff --git a/public/manifest.json b/public/manifest.json index 2323d88..cb57465 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "name": "cli-test2", - "short_name": "cli-test2", + "name": "todolist", + "short_name": "todolist", "icons": [ { "src": "/img/icons/android-chrome-192x192.png", diff --git a/server/api/hello/hello.controller.js b/server/api/hello/hello.controller.js new file mode 100644 index 0000000..30d4a37 --- /dev/null +++ b/server/api/hello/hello.controller.js @@ -0,0 +1,28 @@ +'use strict'; + +const _ = require('lodash'); + +// Get list of todos +exports.index = function(req, res) { + let resp = process.env.MESSAGE == '' ? process.env.MESSAGE : 'hello world' + return res.status(200).json({"message": resp}); +}; + +// Get a single todo +exports.show = function(req, res) { + return res.status(200).json({"message": `goodbye ${req.params.id} 👋`}); +}; + + +function handleError(res, err) { + return res.status(500).send(err); +} + +function handleObjectId(req, res) { + // check if it is a valid ObjectID to prevent cast error + if (!req.params || !req.params.id || !req.params.id.match(/^[0-9a-fA-F]{24}$/)) { + res.status(400).send('not a valid mongo object id'); + return false; + } + return true; +} diff --git a/server/api/hello/index.js b/server/api/hello/index.js new file mode 100644 index 0000000..8a7bb76 --- /dev/null +++ b/server/api/hello/index.js @@ -0,0 +1,12 @@ +'use strict'; + +const express = require('express'); + +const router = express.Router(); + +const controller = require('./hello.controller'); + +router.get('/', controller.index); +router.get('/:id', controller.show); + +module.exports = router; diff --git a/server/app.js b/server/app.js index acb099e..c69766b 100644 --- a/server/app.js +++ b/server/app.js @@ -23,6 +23,7 @@ require('./config/express')(app); if (config.mocks && config.mocks.api) { //add stubs if needed require('./mocks/mock-routes')(app); + require('./routes')(app); } else { const mongoose = require('mongoose'); // Connect to database @@ -37,7 +38,7 @@ if (config.mocks && config.mocks.api) { // Start server server.listen(config.port, config.ip, function () { - console.log('Express server listening on %d, in %s mode', config.port, app.get('env')); + console.log(`Express server listening on ${config.ip}:${config.port}, in %s mode`, app.get('env')); }); // Expose app diff --git a/server/config/environment/development.js b/server/config/environment/development.js index 0e1b14d..859b0ba 100644 --- a/server/config/environment/development.js +++ b/server/config/environment/development.js @@ -9,8 +9,8 @@ module.exports = { }, mocks: { // enable this for non mock api - // api: true - api: false + api: true + // api: false }, seedDB: true }; diff --git a/server/routes.js b/server/routes.js index 7765752..2d6a84e 100644 --- a/server/routes.js +++ b/server/routes.js @@ -18,6 +18,7 @@ module.exports = function(app) { }); // Insert routes below app.use('/api/todos', require('./api/todo')); + app.use('/api/hello', require('./api/hello')); // All undefined asset or api routes should return a 404 app.route('/:url(api|components|app|bower_components|assets)/*') From a4f9278514738f1ac5d6fb672af965b7409bacb1 Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 22 Sep 2022 23:28:17 +0100 Subject: [PATCH 43/46] =?UTF-8?q?=F0=9F=90=A5=20ADD=20-=20new=20app=20vers?= =?UTF-8?q?ion=20=F0=9F=90=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/Chart.yaml | 4 ++-- chart/values.yaml | 2 +- docs/index.yaml | 19 +++++++++++++++++-- docs/todolist-1.1.0.tgz | Bin 0 -> 2436 bytes 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 docs/todolist-1.1.0.tgz diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 3762b59..b14fbf0 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: todolist description: DO500 App - todolist Frontend type: application -version: 1.0.1 -appVersion: 1.0.0 +version: 1.1.0 +appVersion: 1.1.0 home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 maintainers: diff --git a/chart/values.yaml b/chart/values.yaml index 73c13fb..ffd2fb3 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -5,7 +5,7 @@ image_repository: quay.io image_name: do500-todolist image_namespace: rht-labs # likely over written by the Argo definition -image_version: latest +image_version: next a_b_deploy: weight: 100 # svc_name: diff --git a/docs/index.yaml b/docs/index.yaml index d3160c0..6a7be53 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,9 +1,24 @@ apiVersion: v1 entries: todolist: + - apiVersion: v2 + appVersion: 1.1.0 + created: "2022-09-22T23:27:44.958226+01:00" + description: DO500 App - todolist Frontend + digest: 6c460ee1c917eb2a8651264c347971764725809bba025809245553b4f8e47b17 + home: https://petbattle.github.io/helm-charts + icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 + maintainers: + - name: springdo + - name: eformat + name: todolist + type: application + urls: + - todolist-1.1.0.tgz + version: 1.1.0 - apiVersion: v2 appVersion: 1.0.0 - created: "2021-08-04T16:50:44.291978+01:00" + created: "2022-09-22T23:27:44.957967+01:00" description: DO500 App - todolist Frontend digest: ce7a8ec8672d0a3c1cb002894ab816fed816046714718cb4f76de15cc42ab49d home: https://petbattle.github.io/helm-charts @@ -16,4 +31,4 @@ entries: urls: - todolist-1.0.1.tgz version: 1.0.1 -generated: "2021-08-04T16:50:44.290765+01:00" +generated: "2022-09-22T23:27:44.957616+01:00" diff --git a/docs/todolist-1.1.0.tgz b/docs/todolist-1.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3cecd58a39ad48054c279dfe7eb1dff295ca558e GIT binary patch literal 2436 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 Ca;&2O literal 0 HcmV?d00001 From 2bcf9fad6cad7047c60ec8c4988bb112e55168b0 Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 22 Sep 2022 23:44:09 +0100 Subject: [PATCH 44/46] =?UTF-8?q?=F0=9F=A6=A1=20ADD=20-=20new=20app=20vers?= =?UTF-8?q?ion=20=F0=9F=A6=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/templates/deploymentconfig.yaml | 2 +- chart/values.yaml | 2 +- docs/index.yaml | 8 ++++---- docs/todolist-1.1.0.tgz | Bin 2436 -> 2435 bytes server/api/hello/hello.controller.js | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deploymentconfig.yaml index a857934..3e20cb8 100644 --- a/chart/templates/deploymentconfig.yaml +++ b/chart/templates/deploymentconfig.yaml @@ -33,7 +33,7 @@ spec: - name: NODE_ENV value: "development" - name: MESSAGE - value: "hello from the backend server 👋" + value: {{ .Values.message }} {{- range $key := .Values.env_vars }} {{- if .value }} - name: {{ .name }} diff --git a/chart/values.yaml b/chart/values.yaml index ffd2fb3..f3fb01c 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -13,7 +13,7 @@ fathom: false # OCP route route: true -# message: "" +message: "hello from the backend server 👋" env_vars: # - name: MESSAGE diff --git a/docs/index.yaml b/docs/index.yaml index 6a7be53..844e876 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,9 +3,9 @@ entries: todolist: - apiVersion: v2 appVersion: 1.1.0 - created: "2022-09-22T23:27:44.958226+01:00" + created: "2022-09-22T23:43:52.266339+01:00" description: DO500 App - todolist Frontend - digest: 6c460ee1c917eb2a8651264c347971764725809bba025809245553b4f8e47b17 + digest: f76da040c81f9af8c42705172bcdf9f05a1bd3394e255e3a0bc442628d12ccd0 home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 maintainers: @@ -18,7 +18,7 @@ entries: version: 1.1.0 - apiVersion: v2 appVersion: 1.0.0 - created: "2022-09-22T23:27:44.957967+01:00" + created: "2022-09-22T23:43:52.266082+01:00" description: DO500 App - todolist Frontend digest: ce7a8ec8672d0a3c1cb002894ab816fed816046714718cb4f76de15cc42ab49d home: https://petbattle.github.io/helm-charts @@ -31,4 +31,4 @@ entries: urls: - todolist-1.0.1.tgz version: 1.0.1 -generated: "2022-09-22T23:27:44.957616+01:00" +generated: "2022-09-22T23:43:52.265695+01:00" diff --git a/docs/todolist-1.1.0.tgz b/docs/todolist-1.1.0.tgz index 3cecd58a39ad48054c279dfe7eb1dff295ca558e..814b834347b0bea1ffce702add5578f4c0c3f63f 100644 GIT binary patch delta 2398 zcmV-k38D6c6N3|wK7Zu4(casiPtnD-|4p1ChjWr`R&AwZNj_A(TGdK%E>#$^X9f`n z&;U5ADM?R|t2{woF^`Y}z|(Lz(yUjJDrMnfcSJNAjqd*X08)!oFsk(6Xi20F*Cb=F z9(zPl6dg<^_Wvk~y8lO$@#xiXG9HeH2cyYw`YIZZqw(++M1PMiNzW*hCh}GE*?V;l z_dha7PJcnEsNgZIMjpxY`p;oF3?nZ^l}MUv`{?-nG>YIb&mn-ybKrX^xJI6OOOas= zORaMi4+c5v8PS?yxS)Dj%t9&#OJrG)7*A6kO$^71nyiQ>QVmPuLZM77TOB4M8x(_s zZ=%WM+iws4tbg8)qUiruZzo+5x|LJtt#sBE*7yLiTAbEb-L54(&2^GW8 zdkx1Txk3pkqQPuN7I-N!7m8{j*D?HBkab8!Ipa8`Vt*P%LCvq3QaMR52D#J$BQxc_ z21c)ttwF3%!beH9Mh>$z=q19TTnI>UPC2#kbZlyna=g|axtv|5m@~1CJ%Eo$7fT(( zFp4~Y*PvF3lgOJBy%bptbHWsQui^dC8AwrR^z6SeXj!1=WvCQcU=02e851y{qo>2`SDPu50D3p;?0kOiD((cx+ zA==b0o!9EDCTo>eG&>3Q(m7KNr!TDh@!S2)+LE(Yh2s)_aC&l!Ygsp*ezJh38q{;} zzf{4O%I|P<`+ka}?fSjpfGx`!z?3P=Sbx=8w{#Up#mEfVeHON4{?7BX)$M+l^*h{x zN#rC!@c-n4f9d}gM2RdD+zF}f5z-MjE~ds0)pB43kKyJ9C{I|C_8ck%%dm$)A;Uxq z`E$v*q}*`tje@|;lROWvYRsB`qplWiZgwoYgfObXuwVE@WVztTcUkq`#gr>e zc!HbfwvO9NpA)GAF@Ja~SN~(TV3{(FkiiK))^ml??oNPmJL@HQ@phTawBX$(h}>>bIy3^hrKCZ-2+aRvN6 z@E0IoQ7O2At?xk@*$fi^E7I0_R%e1+;FPDxHB2o2%iW#m;op^!^foA2?KoKzq@UXW z&pdkY-wmjr9R?o2|8z9!-v53*9>4T|Pcqu@CV8$xkt0`2I@h-7sQ`am`+tOk{s!(p z1H4tx*e7M1hRSTx+)uUOT|IP6C9bGB(~neXA=f{fZY_pkr7I$}keL6dHRxoxZ7=KOHF&wgwWUcCX zzf1L-}Vx>PuWe~^Ju@0rlQV;)T*uT+H1~) zX<5IGYP?u-DYQrgi+|zb=&bSeEks)oq0A_^xOnGOd`9##hCzy}L2EK#VsYQ1(oMdn z3~RELU`2-SM8VtAH>T(K*|fD%bcIe#j3CdCZf>Yo$J3W*m> ziE1fW8pF6XyVN@W0d>3~N$z}N^I4zk0jOk&M(iIiF3wsL_N546$H>UKiQ^ky+llef z|FtGnktC>8OXgu~wwpexxs$Pbbv-3&IaPVO*L!($I<1fS#8N!16n?fVJ*I$cmTO8vYO zDaJ4vMP8qS_8+l}o8SSrzwZRq5=N2h9>DA?rbeZ!cW(e%(#4`o&_P*sxT5lCY0}Sg zSH!=s(bNCgSE7&kA;1Iu-*7sfcJF_NFW>(>&FF*=Yk&K`s~_hS{mtPA`zC$+CTO3g z?lZf`tu|yyaw)FY?jUkg;2B}=2HKaR;HeZd%6+dVh&G=Ugw;0$RYZM#?+z(drWd7gg zHsj(+x_`inCc{=K`~#*`V&W2fD+9-X>B5Ndk+L))GOZSz3T__nt4+c*N=`I>=RU6} zQ^Gxm-NQiDQTwUgtfOrkL=#=u?I~YKRHY=Qx}YuR3ZNu}Hy5(NH&tHG;XIpXgu`U5o8Lb`8?MG@&04$4I*CYLO)(S67kn}s3hNNw8p4z-|zTO Q00030|HIJLF90$C0Q`2aPXGV_ delta 2399 zcmV-l3840a6ND3xK7Zr5(Vp9%Ptis1{*!Eq6lF=?T~&g9Ysku3=^ z2yg*VW0mbE$W@*oub4+j0pLj#Wou>}yOJ0eGcwRi!>%NBgga_ zVWD-d;=v$CJtbN*4ChoYifKs2V1XfB*f#AAi-G{V4kX<(sjW5y~~89HolA05~znt6Wk(Pena}Ga)mgJ@;27wWn7( z#z69%(S(@WdCT>SKeuI`X4Lp!5>}x4w*-KP@IM(2yZGNf7`@>CDF(^&%MLOmT1==I zhTa|=i{uI=q=*Ky8JXjy#9Szm7_=Z$ z_Ongrp;yuc4zdV-YGvulL>;ycLNHhYe&zKdAtxSkwbVe~X+1`pCdVfL3-O_7whPj4$&Q!zc zD=UBeW_Po;GRmdxLJpSHT)=YO((hg&d-oFoYTAAImH{m(&^$TGp5km?>G z9f9LwYWz?w23GJGZf=0`gcWJer9!X_dk7RVOtg@{mW)fvHTPaC2+TUk^YE(1tm!xE zYT@Q)%eGtitq>Za?K=;%a+*G@o23mlJniR_5l-fq2Gf;eRJr3h$|X(K_BU2IFMpNs zupPQ;3wnicbxg0`T`URvg-=A53yyr7Rqx$QxzdCuxPEWzxV`i_kvb5whmUggUxr*K zg3suD%Z?^ehFvW`cMg8e(Nq69HD)A#tY+}R_n)ZS|4qK#f9e08WOQPxv;Ad8as!ee z2)wliqM>(1c^bo!C3{P9FGEdIqJN3$kz8B>e+T>p$d^Ci~sU;Cwll-WhA`~N>*EL)&%M2Ho!BF9{hI$>KBKB2k<}HA9wNp?PxT4 z!T(c?HoQrmt5D>~)q>8nEqW@zAJ;zNpudLuF92^9GiN{D%Mme5iB6zA|*dHF) zrzj(k5`|3A2z}>f1Y?xX&xj;hsXGA5HOeJnHHTrjkdf>2Le4RU{mIwO+@CpF63WPw zt*vO9p(u3CrIG@m$Wx;641XmRY3C64ApYKoNLH#|N4{)SQ9U%CzB@j-JbyX;P%qT4jed$t zWFoJ!=lZ_pfwH@8fs6^5Ns-wObV`ydlLQsYB}(|`KmPtVf6XA0@HxU)SGY1Qes#_2 zS+p@`X}%eR_N4Yg&;UFvRkkUZS#&#Z>xTs2-*g&xPT5@DGqqcTQ&HzaYSmVM?L=q7 zbgyN zns+Mq92>tQrZZbJxBV9G0spgZKsaG5O%v5Gz2p3;0!kz)<$tKunG{oOtA9o)DO$-MC)DwpB)Rj6^|?OR15n8Vjo3e5T%5HQ>~|!D9U~*FCakY{Z71YM z|JPbnMUtRWEt!X{)owPa)>5u2$2?+%(kOqVQfaT!kSVNmZ@@FRNDGGY)O}y%ARpAz z6&WUlqoi5xDE0GJ zq!`0^Kl1txcUh^sM=7AE~X zcY*w0K6?5;`<3Wp{t)1S{%<%LO}g(t!}9N6mHq+x%`sAgZoR|4GnjH8KEn6 zQ*Ki%o`0lsyl7Htm9yVtN+l*PqqkCS44BT17#}H16C%@U!>QnAdRJ`{rcrXD@dww4 zlsVv@%kE&H>Z<+JZq?DY4WfxI?D3S(C8|;qQ%=y9a|KWm!s`oJ;OnXyu}SMN&8XIx zdN(%}+vf)N4x=ajE2sI#%K#6({~tur=I=j-FIe&aDaO_({tAE35Z2q_u}0oTL)6!Y zcf+XHE?`@6^|2lSQ5mfr&g_rWngCc}s7E)7ZB&pfyNU&hOL8UMTE RUjYCB|Nr;b7Y+b2004rVr1Ag& diff --git a/server/api/hello/hello.controller.js b/server/api/hello/hello.controller.js index 30d4a37..d2f4afa 100644 --- a/server/api/hello/hello.controller.js +++ b/server/api/hello/hello.controller.js @@ -4,7 +4,7 @@ const _ = require('lodash'); // Get list of todos exports.index = function(req, res) { - let resp = process.env.MESSAGE == '' ? process.env.MESSAGE : 'hello world' + let resp = process.env.MESSAGE ? process.env.MESSAGE : 'hello world' return res.status(200).json({"message": resp}); }; From dd73e41ecf820eebbf0c382b2128fca598355eca Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 15 May 2025 22:31:13 +0100 Subject: [PATCH 45/46] =?UTF-8?q?=F0=9F=90=A1=20UPDATE=20-=20move=20from?= =?UTF-8?q?=20DeploymentConfig=20to=20Deployment=20=F0=9F=90=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chart/Chart.yaml | 4 ++-- ...{deploymentconfig.yaml => deployment.yaml} | 24 +++++-------------- 2 files changed, 8 insertions(+), 20 deletions(-) rename chart/templates/{deploymentconfig.yaml => deployment.yaml} (83%) diff --git a/chart/Chart.yaml b/chart/Chart.yaml index b14fbf0..956932e 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: todolist description: DO500 App - todolist Frontend type: application -version: 1.1.0 -appVersion: 1.1.0 +version: 1.2.0 +appVersion: 1.2.0 home: https://petbattle.github.io/helm-charts icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 maintainers: diff --git a/chart/templates/deploymentconfig.yaml b/chart/templates/deployment.yaml similarity index 83% rename from chart/templates/deploymentconfig.yaml rename to chart/templates/deployment.yaml index 3e20cb8..ba3bb4f 100644 --- a/chart/templates/deploymentconfig.yaml +++ b/chart/templates/deployment.yaml @@ -1,5 +1,5 @@ -apiVersion: apps.openshift.io/v1 -kind: DeploymentConfig +apiVersion: apps/v1 +kind: Deployment metadata: labels: {{- include "todolist.labels" . | nindent 4 }} @@ -8,17 +8,8 @@ spec: replicas: {{ .Values.replicas }} revisionHistoryLimit: 10 selector: - {{- include "todolist.selectorLabels" . | nindent 4 }} - strategy: - activeDeadlineSeconds: 21600 - resources: {} - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling + matchLabels: + {{- include "todolist.selectorLabels" . | nindent 6 }} template: metadata: annotations: @@ -63,7 +54,7 @@ spec: port: 9000 scheme: HTTP initialDelaySeconds: 10 - periodSeconds: 10 + periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 dnsPolicy: ClusterFirst @@ -83,7 +74,4 @@ spec: configMap: name: "fathom-client-config" defaultMode: 420 - {{- end }} - test: false - triggers: - - type: ConfigChange \ No newline at end of file + {{- end }} \ No newline at end of file From c5e0984a163016760ae9ca2c5502c9cae532ea65 Mon Sep 17 00:00:00 2001 From: Donal Spring Date: Thu, 15 May 2025 22:53:16 +0100 Subject: [PATCH 46/46] =?UTF-8?q?=F0=9F=90=84=20ADD=20-=20binary=20update?= =?UTF-8?q?=20...=20=F0=9F=90=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.yaml | 17 ++++++++++++++++- docs/todolist-1.2.0.tgz | Bin 0 -> 2328 bytes 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 docs/todolist-1.2.0.tgz diff --git a/docs/index.yaml b/docs/index.yaml index 844e876..240a65e 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,6 +1,21 @@ apiVersion: v1 entries: todolist: + - apiVersion: v2 + appVersion: 1.2.0 + created: "2025-05-15T22:52:00.715014+01:00" + description: DO500 App - todolist Frontend + digest: acd6f85c5db86f93b3e17594790be992cb67d01ca68881e0a74c368843b1c296 + home: https://petbattle.github.io/helm-charts + icon: https://avatars1.githubusercontent.com/u/68044996?s=200&v=4 + maintainers: + - name: springdo + - name: eformat + name: todolist + type: application + urls: + - todolist-1.2.0.tgz + version: 1.2.0 - apiVersion: v2 appVersion: 1.1.0 created: "2022-09-22T23:43:52.266339+01:00" @@ -31,4 +46,4 @@ entries: urls: - todolist-1.0.1.tgz version: 1.0.1 -generated: "2022-09-22T23:43:52.265695+01:00" +generated: "2025-05-15T22:52:00.7135+01:00" diff --git a/docs/todolist-1.2.0.tgz b/docs/todolist-1.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5bbcba36ced015a5fed3a6ca7971f7163225cf53 GIT binary patch literal 2328 zcmV+z3Fr17iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PI@ta@)8O_h&xE4s+ME*C9pOlJCNqOvh(Cxtk`AC-$TtJrKDP zQG);v0F`KLKS4kB3HpkCgbo1ylT2C4#kHnW<3mCdi^c9@f4hsNv`7V`N)L`RB6YYR zIoo^e5k*mSI2zgiqbOSaKN=nE?+wS%a5y@Q4x@v;Xm}9qkM|&YbV+(fsWg#$(Kqk4 zs@(s`AO-z|Qc=NUnD2X}D4IWq;eHr-DXK)$Lfcm-AI4DxM@0bv)Sd%xq~IEP>SZFw z7&5I36%Pgl>Iu=BVK}2YD<>fpgA7?7B*xQ}M-#)brY3WuiB!XixKt<;%T|Yp$Oq-% z@TX`rdiCn?FY5Jv6#ZfTdgSGVa!n{lsbVhxPR#bIkd)6-(Y(N^kU7zw`>U4P(~AOQ zAVtAwLX39ad|B~bpUl&Y2LE%yN>u-q0I&)FoGaCGB%nL>| zs=-x;tU#$kT|7=G*nt0oQ8Ze?|9G^&|BU~q7&kYAA7D=N7!+!lQidimzRrzVk_=<` zVQ_cn87lAeOF?*Q@nAe1#MD09bRK#YUEm;#;MblN8e$)UcAAt-L+A?5Gs7wT6zbL0u`UU);Wo9sGo}GZl5{X72%^uT|v4sgyj7}-0Cfi%l zL+@|sxLbN{_AqKFm|#Lmg`h-^@YiyJlA}iD6rNIKsRAMq7|p516tn=HQ3Zdjg4W5| zg`uT<2CBg1Poekg6eKbvsY-w zg`3;=YaDIe^O6I0PSyaXN?GPq?devo;;0yzAbaS9Et$VopRT#xb5*~?Eto`35(NLx zKKNJu??IHvbHSaE>H#4gf#YIo{7_{BD|ieyH$Zv9%CtwR5G=zU0)-3{E#$k3aYec0 z-b)36nI}aNUN@LE_l>4nxVc%g>=u42g+}Q5&SqB5(nrl@=^h)N_H)SzCo@cg$-*(J z-SGnDoF+@_+f%rxjIsF~R?Qal3gPOMUc0+k67~z9h`bOS`MOhma53dd6Q1C*-qvw@ z=?fxtAf}tQa`j)1TqlB0>1@r4Hd2PGR^D|E-sR}2|C||fQasjWaAW@`TD|{`f7~BF z*MCnjR${6<`>UK31|&fccuNhUp?6Jr8pE+Adrt~4M@>?qiMa#0xB~tb_zRHFsTAD6 z*7u-_Y=#Md73to3)?|WP;FPDxHH<9&tKFUG;op^!^fstitB3RkH$Z)-v17V4nDg?LyvQW)D@_B2Dy3uy_;pFt{^z2hJ z(RADV6z9l9QD>Lsb!~%gWm!kmsuS3rhdTjD_zdB@Yh0K+Z%thH0avL_UbU>d6G01t zu(DCVByQzxbF=pS`(EPqscst&yxOkfuc-?mwd&ft@tSjCu5_;=+hA?TrO+Y~EQZVD z^VZiD09j!F5Wv6pA((MFi3Ge=u8Go%pO`)xyc*KupyfZR_6F#l)Ni_ zdlbEeKuZ=tZk9TE{DCO+fD}a_h0p^flL1i*bzL2o(uy$Pwl?cb#V;e;(TO;o@1j`P*6iy zcuA7N`NZ$nW z{@JhMDr|xcUjL8=^%6#r>mIyp6m!?L-(G+HZ$F7W=7-=7_5W~uFkZd?51)Vk@ib!v zANK6~uKvy`M1fpobgFGfw7w~Pv|m#1cLKJl^S|*zaj(qINFl|Sg;PW>3p^prbs&8y zN}ftFq1^X+qD1>yIjp}S*CFG@gFB>DkqN`AM2Kr@N*`a#65BnhvaGJiZBDb3n#dXI zw!8{-QkXl2aMRAtRg>6*hby{!7GC`_u4{8sZc_@LrZc>3Q%IeoK4MBGCN6_@QcMh( z&WsqJDN7R~(|W;~;O6zV)+9`$@fr zs*=Q{Pug*=04hRwc_~YLS!ZASQ=+3Zr&?p`-Q3h{cMa|>Mo;`#&hn3!0XFr252NVb z_y6IK&+-2$#@ZHdjlUg)^=^11Tj{?FriJdgk1@t*(y0RR6XV&zr