From fde7a7f6b3ba8c22b521cda537ad89263803f468 Mon Sep 17 00:00:00 2001 From: Samir Gondzetovic Date: Mon, 10 Sep 2018 14:42:01 +0100 Subject: [PATCH] deploy sendgrid templates when deploying docker image --- .gitignore | 3 ++- Dockerfile | 1 + build.sh | 3 ++- deploy.sh | 24 +++++++++++++++++ package-lock.json | 69 +++++++++++++++++++++++++---------------------- 5 files changed, 66 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index c31112e..8e05439 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ node_modules log.txt .DS_Store dist -src/emails/**/*.css +emails/node_modules +emails/temp diff --git a/Dockerfile b/Dockerfile index b4a2d28..c4798b9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,4 +10,5 @@ COPY . . RUN npm install RUN npm install dotenv --save RUN npm test +RUN cd emails && npm install && npm run build && cd .. CMD ["npm", "start"] diff --git a/build.sh b/build.sh index 4a6e7b9..0a9cbc5 100755 --- a/build.sh +++ b/build.sh @@ -43,4 +43,5 @@ then docker cp app:/opt/app/node_modules . fi - +# copy dist directory containing the built email template +docker cp app:/opt/app/emails/dist ./emails-dist \ No newline at end of file diff --git a/deploy.sh b/deploy.sh index 6f86551..12fdf8c 100755 --- a/deploy.sh +++ b/deploy.sh @@ -75,6 +75,10 @@ TOKEN_CACHE_TIME=$(eval "echo \$${ENV}_TOKEN_CACHE_TIME") AUTH0_CLIENT_ID=$(eval "echo \$${ENV}_AUTH0_CLIENT_ID") AUTH0_CLIENT_SECRET=$(eval "echo \$${ENV}_AUTH0_CLIENT_SECRET") +SENDGRID_API_KEY=$(eval "echo \$${ENV}_SENDGRID_API_KEY") +SENDGRID_TEMPLATE_ID=$(eval "echo \$${ENV}_SENDGRID_TEMPLATE_ID") +SENDGRID_VERSION_ID=$(eval "echo \$${ENV}_SENDGRID_VERSION_ID") + echo $APP_NAME configure_aws_cli() { @@ -293,7 +297,27 @@ check_service_status() { echo "$servicestatus" } +deploy_email_template() { + + echo "Deploying email template" + + template=`cat ./emails-dist/template.html` + jq -n --arg template "$template" \ + '{"active":1,"html_content":$template}' > request-data.txt + + + curl --request PATCH \ + --url "https://api.sendgrid.com/v3/templates/$SENDGRID_TEMPLATE_ID/versions/$SENDGRID_VERSION_ID" \ + --header "authorization: Bearer $SENDGRID_API_KEY" \ + --header 'content-type: application/json' \ + --data @request-data.txt + + echo "Email template deployed" + +} + configure_aws_cli push_ecr_image deploy_cluster check_service_status +deploy_email_template \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1d9bb8a..9ef7326 100644 --- a/package-lock.json +++ b/package-lock.json @@ -111,30 +111,6 @@ "@types/mime": "2.0.0" } }, - "CSSselect": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz", - "integrity": "sha1-+Kt+H4QYzmPNput713ioXX7EkrI=", - "requires": { - "CSSwhat": "0.4.7", - "domutils": "1.4.3" - }, - "dependencies": { - "domutils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", - "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", - "requires": { - "domelementtype": "1.3.0" - } - } - } - }, - "CSSwhat": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz", - "integrity": "sha1-hn2g/zn3eGEyQsRM/qg/CqTr35s=" - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1561,6 +1537,30 @@ "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", "dev": true }, + "CSSselect": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz", + "integrity": "sha1-+Kt+H4QYzmPNput713ioXX7EkrI=", + "requires": { + "CSSwhat": "0.4.7", + "domutils": "1.4.3" + }, + "dependencies": { + "domutils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", + "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", + "requires": { + "domelementtype": "1.3.0" + } + } + } + }, + "CSSwhat": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz", + "integrity": "sha1-hn2g/zn3eGEyQsRM/qg/CqTr35s=" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -1814,6 +1814,11 @@ "domelementtype": "1.3.0" } }, + "dotenv": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", + "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" + }, "dottie": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.0.tgz", @@ -8664,6 +8669,14 @@ "limiter": "1.1.3" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -8675,14 +8688,6 @@ "strip-ansi": "3.0.1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "stringstream": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",