diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f9cd80ef1..000000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -language: node_js -node_js: -- 5.12.0 -before_install: -- npm i -g npm@5.3.0 -install: -- npm install -script: -- npm run lint && npm test && npm run build -sudo: false -deploy: -- provider: s3 - cache_control: private, no-store, no-cache, must-revalidate, max-age=0 - detect_encoding: true - access_key_id: $AWS_KEY - secret_access_key: $AWS_SECRET - bucket: app.topcoder-dev.com - skip_cleanup: true - local_dir: dist - on: - branch: dev -- provider: s3 - cache_control: private, no-store, no-cache, must-revalidate, max-age=0 - detect_encoding: true - access_key_id: $QA_AWS_KEY - secret_access_key: $QA_AWS_SECRET - bucket: app.topcoder-qa.com - skip_cleanup: true - local_dir: dist - on: - branch: qa-integration -- provider: s3 - cache_control: private, no-store, no-cache, must-revalidate, max-age=0 - detect_encoding: true - access_key_id: $MASTER_AWS_KEY - secret_access_key: $MASTER_AWS_SECRET - bucket: app.topcoder.com - skip_cleanup: true - local_dir: dist - on: - branch: master -env: - matrix: - - CXX=g++-4.8 - global: - # DEV_AWS_KEY - - secure: a5X4QlY2JD/sJnEBkT5WwwfWjYKq3ldRf/+Dh5x2oHB0swGzYyFxzVlezddPF8xDML+CcVoLHkd8WNM2F7qcxHZTDC5spH/ym2gX6YlRwFRTTFBRCJehgYs8Vit/s14f8gkuVV8fe2ubMiV+fpAw80tb3E+t+nCckmXwe8gDqDbHto5VIozTiqDOV/WvkPzaRQofTeNzSqjrAH/iRq8hJUx16shCO2ccdiLu7rnOuys+UwjWFRyjdLP01UZXd5u6a5XK3vigLGPBAqsEwSMgScATJjNIHwYofE5Q3ztD85jz/JoQatQf7LCnQUqkLT+xldMkOZuTlTHvzmVUOl2WYpVxWV9hXwBemvyuRPPtzIrZkKXi6OUgvpYwGgWn8eS1qulB1DYPrUWBtIYGQoxEchfNlmcrCIJ7BrbL9xiNUM8J+ZCWtNS01eSapMHdhAIUMLEsAjxBY+ArLuYAD+URB0d+JZrr9cORGnrGDB+1wI12Z/Qu5LEDp/TMOisK2PXEsaqzlaazr9lj2FXTYJQyyFMMWzq1v1o5lZ5mEJ5ea36eGApV1iQNmPrg7omhDHwKtBpMDFQWZ0Y1SrkIk3QTX6JfzsrehwAhAK2fZ25EaC6zcppAo0ia5/VZoWzxHFQyhkC47hRrM7C6nCriQPDc9kKsmTSX5rp5e/DNpiZ67qM= - # DEV_AWS_SECRET - - secure: p+od0xD/9vpMbR2AI6gZWknNAtvvIfq6jXIF98DEsDlqrrMFv4SwtuXLlCmX5PBnB/cWOkwgRhymI7/3+fLrDC+wqlhDEWyzSpVOvAcVAb5LEP7IDen0W8kTj2q9I2VRX+keL7lxQCknAf/21sRZeJfJhLGR+O3NcytEdsjlpFCopA6luZYv1QSd+nRJiTsI7I69T0hr7jZk+YioyjEEp/4qzI2qyJH7E5Ry+DD3gXnC3zva48Huq6rvOtLpgFmio1b1rNAcA55Q9Y3vb1jJyZhKpRvtel9OM9ekTxANEGJVaMzxyZXT7EFTxwxS+ub5c2HRzxedMnD3tY29ku2JJx7Ofm+Yxt9DZXSK7EV99xxE71kIhI9lZFiWZviym08MHGc4pee6+Cl6ZkiV44v4XnwbgUq8GCOkmDMQBQtGhXq7dC6jB/r7P7CJs+DIGDF7qNt/xizVOC1THS8GUCN68aWMVperP+IlUXo5d2XekhO6vjHk6o44K8A1s7yblBWXj54B6NfJnBzUK2X0g6Y2xdW6tmoKtad1r1I3062skc+UiU+6m4fGS8pLFElJNj+8N7QANoEw9oJDZfuQ47uVQzPjAA1/qdcy3ksMek0siNFbpZnMqzOJTPf2Xe7YgKuCPg0QczESXIjOeEIU0om7SWmGEIuMFqt6obQW0M3VHn0= - # QA_AWS_KEY - - secure: XG8fvQkBGUSbrZ+ZcHJadpPGKze1HrO17pl9WAzXOAFaomgZpXJIQrEmH8H03QpeFwhhM0pmWeHwnLAzSQ3j8dU8RidlR5/72X9Jdz74YJNPun7O4EJ4LE4qd3bjsS1+0IhyoaatV9OvIbCJDm1ujpHATkvUwHqt2WvVKxmy76raYqzMBNJD0xq0JrceZWwy2i0mnxLNSe/PqGREPDVWIFjb/rgLo0k2NPH7Z/ZqzTN9F/HzT7b4qmEJaQsjgBwWnMDIYdFKIVhP4nUlQBhZhuiiirUh7STOxloxe245xu2FRr+m5la2Eqpw8yf+nwsevtgnk1SaWF9LVp2VOV6AONWI5fMC/PGlEoVKf/Wt+S39wxlsIG4RL8RH0I9IypxHyfWcKz/iBVKWwpEH+IGa9Pl2XnCDJs5xHBkaVKuX76Nk8NSEG/ZxkCLBhlDSMmiivw4dQShQQv/qto1nz8rVzhj2gZUJbynsfKId2x/VrcnaPVRMSHuTRI/112wzLfENpcy1WhOJrKHZjMuoUVOLYNZs/kqygNTjqUbiqBb1t2RRuULB7RjBFMJBJKFbQA6wha1Ieh0lut3ZWbXPFkpsGCfC7S3l6Iy6U4BQcFpRDGw8MiAI+y5IPzePgKwhWxKZl0nY34trdzK4KaCabvdORYviSaBbxGiXPVsja/SY3T8= - # QA_AWS_SECRET - - secure: ALKnhODYCEtEjaDKe7YCupZPr7krQpLHkhlumUPkZVdYvNbunNDQcSDIJAEx97W9PJ0jRLQzYgoosQ+49CKOi7Lv2K+GHszBtiJ7Mc689v+lkQ686pSrGTrnTV626wLT6fxtprrFofTF8Q7Ywpp8q5A6vmTOpUFIkFBzlfEoInmvSXtM3BFTg11OFQdyhP1Pv2vSdDjFvbulCBhFo1sw8f1pRlUxALaYTE1ar1kN2EysrS5VSuK7ZdyXrmleJCwnIFshECqNUpHPU7LwYxeoTlaFGdeMFK5TuqrxR/LC6lSWTQvhMtQJzMFh8W2FwNJNqPNFmttD7G86/6o6jNxW4E0xo35VINaPi3qPdlHXFLBxMjkRzVS+I2EUjb80Hft5gK1/JXBl0RqX38sqgVGb1/u63hPR0iNqLW9CPEXXxrdifLrex+x3hW2Shg8kzGwRdE181zgdIIhnV8JiD1lsO1XrpusCjia+QjZJKp+fglq/1KGGRqHllxTN0T+6E9V8O4Opy+59aWcO8nkIJ5+INRl67MhpgJmutAfF2lgd5hMAWju5GNA77Bfd31zwpbOdetwmyp2fo81iKs1rgK4M9rFTtKsRFObDnalEqP+mwmwAg0yzhmWAMpmegYDAGfHOBPLSHpFDPRW7lrI4HTMrW2zP2W/NCIwHWpqPM/82bnc= - # MASTER_AWS_KEY - - secure: natX9uNNhOZBAkVht/f/dxT2Rkv/EP4maS3h9/dRXqejEHO9YQCTnvApGFE1SkDuH+NHoH06yx7RpAh+Gswn8CldHPF3daVnJHVgZYU2gBTyxlc5hFFV3ZmZ+hFSZgzWAXRSedw3l/SD7ceo8RebeVpSH/weDxzmHHSb429f0809wM+gWeUsNAG1sAr/oKw1t++7xIZA9p9k7EpCy8oBpHNRB30vknORNY/VFZMbp/RHfJohiL8SM9Nub2rnh27LKxik32BDCNypm+wE1cMB8642wL+MysIN7b1b1PJ9Hkahzcym8tImY0zJrui/j7tZ2ho0ATaHIc4DHna3TeM/tIK56Rtb+w4/b5rZrtIGCqCDoo6MQMkh1jL45KKeoa9Q5OgdgKqRgOQIkhy9MPQyqayUi/6RTplYXt1MO0vpHKUD2yMDZSfXWfin0XnHywTKAjjdc/lyvvC7YtrucbUu3DSbY6Eq5DH9przWdHWtXQDA0+hNjjxa6M8w2hPYBqOSM5GHF1VjlwY15hDLx/oua1VyGSfe7msd6xo0gkA/lvbA4QrOcuPYduF0cOvXuzj/RsaVqcHOAzRHvyKHaQR2UmmEQH7JoKr0/0mjXTNZX/xPlGtqRBDiWajfHhIjG4RlApbGTcdFUiuMrTNp0USA3QyV72yljWvkZ4L/9PbDjq8= - # MASTER_AWS_SECRET - - secure: fO89NVR5/+qbWD0tcHOftkGGSCa89vrYeH+UJ4zaE9kgos2W7QpIsc/ENt9NscuBOERBsrlOCzS+mBBC1ss40/GxIQbM8xS9b6y8odJqEKDCR34YDWcPEmb/kSbC0Cb7Q6r6r8fbJ0GFBOunYgiGFaGyPLlhVd68NBH2YzzRZ5R24KU7T1/3mFUz50DO/q+6NU56WurkrqTIes6YT3UNAPaXDaHJHtTifts+TibP6NpAsTDcj38gBH4re6+5MkI/iPUAaN7iA+aooDtHsKNWI0iCTyyBORfzNbCd0Nbbqv6GH/3v9RlZXg05+uOWOxjPLSH8TK3aQfGZD9uf1NmZRsNkLVVYMjUHAAZU3g0k8fxXMUtkL0nqbIoi9FTAMdHzc3aHQlU41DPbS7YV+Cs9Y2aHOx+kX1eqber6g0PUSrDSGmdFDlJqJrabHXomgRZxJ/uPyZ/JzGZQDYZxqWuhmtap79uGJOe/OKa1Oubj8wfwH3BIA1IFbLS2I5wAN5UOb0eQkTQTXS8LVtO2VicbX9YdZF1cE5uCpK1cXCv6+cNhziTXIrRFp7W/cYPMN7eZoQNxRgGfTSY+yNCKR3Qh+S8Ota8lZoB60wiPb6ISPIXbO0AwTtRHjrTUsPEfxsQPLZT4AZkYgjGbMEkzuhDVh3vR1gpQ67L8hPbNPAwh0ts= -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 -notifications: - slack: - secure: PMGlpdBoRzMlIjCsPWdXJ1wf550b+mpX0x44ggGWNL7ErpNebfyqIbXf4VJXYQDmhVJt31ygDaxTtj8XwZJlbvQjE6WGHU26KvL/efGJJL5EmgFD8LDBFpsbn49PyoZuVOTbSzqP8d8WCCPo4oBvX2r2Q2Ixh/tUx7i4Bcv0XwNpWAR75v1Yq/NftEI48k2GcI3oHqmuEgLHdP93k1rCUM4sBsgkr4PCltZfoE2AWlF6wY59w/oFiKj4FwycY8QjJZa/zbSQq1B/9QD7n4YBY4QjVv3LmjshEiQv1HGo2rNLV+/BB5ZoQ6JEH9h+seduHNTF+mkToKbJ2YjDERLlqLFYWVQKXTqFkSdYuknguJ3uOfXFaGtPDSqTRljE6WW6UDIJi9lDpxFHjH2q848/2O03RKtYeFKJWNbVb7Q2PWTBFxx6OurYra+tbUAorQiYmAQxd0vJY+qzGIDJZIQ8yDE4C10heOhfRyU8wJSKF3xJUKKWVGfBuHivFBZOETFSg0uVBcJnsXRcErvEQz0LuKaZfP81bIokcKUGxum/xyp9mYhYqWDvIj31RUhDMiRxXTPe9PhW0mlOtRG7tm2+8G08exHPSfONSV2IPUtlQt4j2/+I22ncOwtsm6yZzXXbDjoMR2sCHIyJj3lVECOqAnCfNJ6Q0CNJ93LqxKSHdFU= diff --git a/README.md b/README.md index 309486166..222418793 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -#### Dev [![Build Status](https://travis-ci.org/appirio-tech/topcoder-app.svg?branch=dev)](https://travis-ci.org/appirio-tech/topcoder-app) QA [![Build Status](https://travis-ci.org/appirio-tech/topcoder-app.svg?branch=qa-integration)](https://travis-ci.org/appirio-tech/topcoder-app) Master [![Build Status](https://travis-ci.org/appirio-tech/topcoder-app.svg?branch=master)](https://travis-ci.org/appirio-tech/topcoder-app) +#### Dev [![Build Status](https://circleci.com/gh/appirio-tech/topcoder-app/tree/dev.svg?style=shield&circle-token=5acf3da74ea00fc827850218f9f01578a4d6ea68)] QA [![Build Status](https://circleci.com/gh/appirio-tech/topcoder-app/tree/qa-integration.svg?style=shield&circle-token=5acf3da74ea00fc827850218f9f01578a4d6ea68)] Master [![Build Status](https://circleci.com/gh/appirio-tech/topcoder-app/tree/master.svg?style=shield&circle-token=5acf3da74ea00fc827850218f9f01578a4d6ea68)] # Topcoder-App Topcoder-App is an Angular application that contains dashboard, profile, settings, login/registration, and design submissions. -The technologies used are NPM, Webpack, ES2015, Jade, SCSS, and Angular 1.x. +The technologies used are NPM, Webpack, ES2015, Jade, SCSS, and Angular 1.x. ## Installation @@ -128,7 +128,7 @@ See any `*.routes.js` file as an example. ### Style Guide and Naming Conventions - - Our travis build runs `npm run lint` and `npm test`, so make sure your code adheres to the code style enforced by our linters + - Our circleci build runs `npm run lint` and `npm test`, so make sure your code adheres to the code style enforced by our linters - Please use ES2015 syntax whenever possible - Use the Angular style guide mentioned below diff --git a/circle.yml b/circle.yml new file mode 100644 index 000000000..300ce9584 --- /dev/null +++ b/circle.yml @@ -0,0 +1,44 @@ +machine: + node: + version: 5.5.0 + environment: + CXX: g++-4.8 + +dependencies: + pre: + - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + - sudo apt-get update -y + - sudo apt-get install g++-4.8 -y + override: + - node --version + - npm --version + - nvm --version + - npm install coffeescript + - npm install + +compile: + override: + - ls node_modules/* + - npm run lint && npm run build + +test: + override: + - npm test + +deployment: + development: + branch: [dev, dev-circleci] + owner: appirio-tech + commands: + - ./deploy.sh DEV + qa: + branch: qa-integration + owner: appirio-tech + commands: + - ./deploy.sh QA + production: + branch: master + owner: appirio-tech + commands: + - ./deploy.sh PROD + diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 000000000..208efb2f3 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +ENV=$1 +echo $ENV +#AWS_REGION=$(eval "echo \$${ENV}_AWS_REGION") +AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV}_AWS_ACCESS_KEY_ID") +AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV}_AWS_SECRET_ACCESS_KEY") +AWS_S3_BUCKET=$(eval "echo \$${ENV}_S3_BUCKET") + +configure_aws_cli() { + aws --version + aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID + aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY + #aws configure set default.region $AWS_REGION + aws configure set default.output json + echo "Configured AWS CLI." +} + +deploy_s3bucket() { + #chmod -R 775 ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist + cat dist/app.2e9868372e0e2992d5d2.css + #aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control private,no-store,no-cache,must-revalidate,max-age=0 + #result=`aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control private,no-store,no-cache,must-revalidate,max-age=0` + aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control max-age=0,s-maxage=86400 --exclude "*.txt" --exclude "*.js" --exclude "*.map" --exclude "*.css" + result=`aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control max-age=0,s-maxage=86400 --exclude "*.txt" --exclude "*.js" --exclude "*.map" --exclude "*.css"` + if [ $? -eq 0 ]; then + #echo $result + echo "All html, font, image and media files are Deployed without gzip encoding!" + else + echo "Deployment Failed - $result" + exit 1 + fi + #result=`aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control private,no-store,no-cache,must-revalidate,max-age=0` + aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control max-age=0,s-maxage=86400 --exclude "*" --include "*.txt" --include "*.js" --include "*.map" --include "*.css" --content-encoding gzip + result=`aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} --cache-control max-age=0,s-maxage=86400 --exclude "*" --include "*.txt" --include "*.js" --include "*.map" --include "*.css" --content-encoding gzip` + if [ $? -eq 0 ]; then + #echo $result + echo "All css, js, and map files are Deployed! with gzip" + else + echo "Deployment Failed - $result" + exit 1 + fi + +} + +#sed -i 's/^application\/x-font-woff.*/application\/font-woff\t\t\t\twoff/' /etc/mime.types +echo -e "application/font-woff\t\t\t\twoff2" >> /etc/mime.types +echo -e "application/font-sfnt\t\t\t\tttf" >> /etc/mime.types +echo -e "application/json\t\t\t\tmap" >> /etc/mime.types +#sed -i 's/^image\/vnd.microsoft.icon.*/image\/vnd.microsoft.icon/' /etc/mime.types +#sed -i 's/^image\/x-icon.*/image\/x-icon\t\t\t\tico/' /etc/mime.types +cat /etc/mime.types | grep -i woff +cat /etc/mime.types | grep -i ico +cat /etc/mime.types | grep -i map +cat /etc/mime.types | grep -i ttf + +configure_aws_cli +deploy_s3bucket \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index ff285298e..ce5956e1e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,6 @@ require('./node_modules/coffee-script/register') -const CI = process.env.TRAVIS_BRANCH +const CI = process.env.CIRCLE_BRANCH if (CI === 'master') { process.env.ENV = 'PROD' pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy