|
1 | 1 | version: 2
|
2 | 2 |
|
3 |
| -# node image to run aws utilities |
4 |
| -node_env: &node_env |
| 3 | +# Python image to run aws utilities |
| 4 | +python_env: &python_env |
5 | 5 | docker:
|
6 |
| - - image: circleci/node:8.16.0-jessie-browsers |
| 6 | + - image: circleci/python:2.7-stretch-browsers |
7 | 7 |
|
8 |
| -install_deploysuite: &install_deploysuite |
9 |
| - name: Installation of install_deploysuite. |
| 8 | +# Instructions of installing aws utilities |
| 9 | +install_awscli: &install_awscli |
| 10 | + name: "Install awscli" |
10 | 11 | command: |
|
11 |
| - git clone --branch v1.4.2 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript |
12 |
| - cp ./../buildscript/master_deploy.sh . |
13 |
| - cp ./../buildscript/buildenv.sh . |
14 |
| - cp ./../buildscript/awsconfiguration.sh . |
| 12 | + sudo pip install awscli awsebcli --upgrade |
| 13 | + aws --version |
| 14 | + eb --version |
15 | 15 |
|
16 |
| -install_build_dependencies: &install_build_dependencies |
17 |
| - name: Install g++-4.8 and Install node-5.12.0 |
18 |
| - command: | |
19 |
| - sudo apt-get update -y |
20 |
| - sudo apt-get install g++-4.8 -y |
21 |
| - sudo apt-get install python-pip -y |
22 |
| - sudo pip install awscli --upgrade |
23 |
| - sudo apt install jq -y |
24 |
| - sudo apt install phantomjs -y |
25 |
| - aws --version |
26 |
| - |
27 |
| -build_npm_steps: &build_npm_steps |
28 |
| - name: "configuring environment building environment" |
29 |
| - command: | |
30 |
| - ./awsconfiguration.sh $DEPLOY_ENV |
31 |
| - source awsenvconf |
32 |
| - ./buildenv.sh -e $DEPLOY_ENV -b ${LOGICAL_ENV}-${APPNAME}-buildvar |
33 |
| - source buildenvvar |
34 |
| - npm rebuild node-sass |
35 |
| - npm run lint && npm run build |
36 |
| - #npm test |
37 |
| -
|
38 |
| -build_deploy_steps: &build_deploy_steps |
39 |
| - - run: *install_build_dependencies |
40 |
| - - checkout |
41 |
| - - run: *install_deploysuite |
42 |
| - - restore_cache: |
43 |
| - key: node-modules-{{ checksum "package-lock.json" }} |
44 |
| - - run: npm install |
45 |
| - - save_cache: |
46 |
| - key: node-modules-{{ checksum "package-lock.json" }} |
47 |
| - paths: |
48 |
| - - node_modules |
49 |
| - - run: *build_npm_steps |
| 16 | +# Instructinos of deployment |
| 17 | +deploy_steps: &deploy_steps |
| 18 | + - attach_workspace: |
| 19 | + at: . |
| 20 | + - run: *install_awscli |
50 | 21 | - setup_remote_docker
|
51 |
| - - deploy: |
52 |
| - name: Running MasterScript. |
53 |
| - command: | |
54 |
| - # ./deploy.sh $DEPLOY_ENV |
55 |
| - # ./awsconfiguration.sh $DEPLOY_ENV |
56 |
| - source awsenvconf |
57 |
| - ./buildenv.sh -e $DEPLOY_ENV -b ${LOGICAL_ENV}-${APPNAME}-deployvar |
58 |
| - source buildenvvar |
59 |
| - ./master_deploy.sh -d CFRONT -e $DEPLOY_ENV -c true |
| 22 | + - run: ./deploy.sh $DEPLOY_ENV |
| 23 | + |
60 | 24 |
|
61 | 25 | jobs:
|
62 |
| - |
63 |
| - build_deploy_dev: |
64 |
| - <<: *node_env |
| 26 | + build: |
| 27 | + machine: true |
65 | 28 | environment:
|
66 | 29 | CXX: g++-4.8
|
67 |
| - DEPLOY_ENV: "DEV" |
68 |
| - LOGICAL_ENV: "dev" |
69 |
| - APPNAME: "topcoder-app" |
70 |
| - steps: *build_deploy_steps |
| 30 | + steps: |
| 31 | + - run: |
| 32 | + name: Install g++-4.8 |
| 33 | + command: | |
| 34 | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y |
| 35 | + sudo apt-get update -y |
| 36 | + sudo apt-get install g++-4.8 -y |
| 37 | + - run: |
| 38 | + name: Install node-5.12.0 |
| 39 | + command: | |
| 40 | + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | sudo bash |
| 41 | + source ~/.bashrc |
| 42 | + nvm install 5.12.0 |
| 43 | + node --version |
| 44 | + npm --version |
| 45 | + nvm --version |
| 46 | +
|
| 47 | + - checkout |
| 48 | + - restore_cache: |
| 49 | + key: node-modules-{{ checksum "package-lock.json" }} |
| 50 | + - run: npm install |
| 51 | + - save_cache: |
| 52 | + key: node-modules-{{ checksum "package-lock.json" }} |
| 53 | + paths: |
| 54 | + - node_modules |
| 55 | + - run: ls node_modules/* |
| 56 | + - run: npm run lint && npm run build |
| 57 | + - run: npm test |
| 58 | + - persist_to_workspace: |
| 59 | + root: . |
| 60 | + paths: |
| 61 | + - ./ |
71 | 62 |
|
72 |
| - build_deploy_prod: |
73 |
| - <<: *node_env |
| 63 | + deploy_prod: |
| 64 | + <<: *python_env |
74 | 65 | environment:
|
75 |
| - CXX: g++-4.8 |
76 | 66 | DEPLOY_ENV: "PROD"
|
77 |
| - LOGICAL_ENV: "prod" |
78 |
| - APPNAME: "topcoder-app" |
79 |
| - steps: *build_deploy_steps |
| 67 | + steps: *deploy_steps |
80 | 68 |
|
81 |
| - build_deploy_qa: |
82 |
| - <<: *node_env |
| 69 | + deploy_dev: |
| 70 | + <<: *python_env |
83 | 71 | environment:
|
84 |
| - CXX: g++-4.8 |
85 |
| - DEPLOY_ENV: "QA" |
86 |
| - LOGICAL_ENV: "qa" |
87 |
| - APPNAME: "topcoder-app" |
88 |
| - steps: *build_deploy_steps |
| 72 | + DEPLOY_ENV: "DEV" |
| 73 | + steps: *deploy_steps |
89 | 74 |
|
| 75 | + deploy_qa: |
| 76 | + <<: *python_env |
| 77 | + environemtn: |
| 78 | + DEPLOY_ENV: "QA" |
| 79 | + steps: *deploy_steps |
90 | 80 |
|
91 | 81 | workflows:
|
92 | 82 | version: 2
|
93 | 83 | build-and-deploy:
|
94 | 84 | jobs:
|
95 |
| - - build_deploy_dev: |
96 |
| - context : org-global |
| 85 | + - build |
| 86 | + - deploy_dev: |
97 | 87 | filters:
|
98 | 88 | branches:
|
99 | 89 | only: [ dev, dev-circleci2 ]
|
100 |
| - - build_deploy_qa: |
101 |
| - context : org-global |
| 90 | + requires: |
| 91 | + - build |
| 92 | + - deploy_prod: |
102 | 93 | filters:
|
103 | 94 | branches:
|
104 |
| - only: qa-integration |
105 |
| - - build_deploy_prod: |
106 |
| - context : org-global |
| 95 | + only: master |
| 96 | + requires: |
| 97 | + - build |
| 98 | + - deploy_qa: |
107 | 99 | filters:
|
108 | 100 | branches:
|
109 |
| - only: master |
110 |
| - |
| 101 | + only: qa-integration |
| 102 | + requires: |
| 103 | + - build |
0 commit comments