diff --git a/ansible/roles/react-build/tasks/main.yaml b/ansible/roles/react-build/tasks/main.yaml index 4efc1ccb005f0f9bccf3e0512dc09e8e15af237d..faf5b27ea569ebf4d2e42a8a8c842c3c3d61b6e5 100644 --- a/ansible/roles/react-build/tasks/main.yaml +++ b/ansible/roles/react-build/tasks/main.yaml @@ -1,3 +1,4 @@ +<<<<<<< HEAD # --- # - name: check if packages exits # package_facts: @@ -191,11 +192,216 @@ # - debug: # msg: 'all servers stopped' # # when: build_copy.rc == 0 +======= +--- + - name: check if packages exits + package_facts: + manager: auto - - name: start the server + - name: 'install all the dependencies ' + tags: always become: yes + apt: + name: ['nodejs','npm'] + state: present + install_recommends: no + update_cache: yes + - debug: + msg: "node and npm installed" + + - name: make sure the latest npm is installed + tags: 'node' + become: yes + npm: + name: npm + global: yes + state: present + + - name: install react + tags: 'react' + become: yes + npm: + name: create-react-app + global: yes + state: present + + - name: traverse into the project directory. + become: yes + shell: cd + args: + chdir: /var/lib/react + register: dir_changed + + - name: clone git repo + become: yes + git: + repo: https://github.com/advait22/react-server.git + dest: /var/lib/react + force: yes + - debug: + msg: 'git repo cloned' + when: dir_changed.rc == 0 + + - name: change working directory to the app + become: yes + shell: cd + args: + chdir: /var/lib/react/express_react_example + register: server + + - name: install all the packages for server + become: yes + npm: + path: /var/lib/react/express_react_example/ + name: install + - debug: + msg: 'inside server' + when: server.rc == 0 + + - name: change working directory to the client + become: yes + shell: cd + args: + chdir: /var/lib/react/express_react_example/client + register: client + + - name: install dependencies + become: yes + npm: + path: /var/lib/react/express_react_example/client + name: install + - debug: + msg: 'Client Dependencies installed' + when: client.rc == 0 + + - name: Ansible check directory exists build in client. + stat: + path: /var/lib/react/express_react_example/client/build + register: files_to_delete + + - name: delete previous build folder + become: yes + shell: rm -rf build + args: + chdir: /var/lib/react/express_react_example/client/ + register: build_delete + - debug: + msg: "build deleted" + when: files_to_delete.stat.exists == true + + ###workaround for react js bug in build command + + - name: delete dependencies on client + become: yes + shell: rm -rf node_modules + args: + chdir: /var/lib/react/express_react_example/client/ + register: deleted_modules + - debug: + msg: 'Client Dependencies delete' + + - name: clear npm cache + tags: 'clear cache' + become: yes + shell: npm cache clean --force + args: + chdir: /var/lib/react/express_react_example/client + register: cache_cleaned + when: deleted_modules.rc == 0 + + - name: install dependencies + become: yes + npm: + path: /var/lib/react/express_react_example/ + name: express + - debug: + msg: 'Client express installed' + + - name: install dependencies + become: yes + npm: + path: /var/lib/react/express_react_example/client + name: install + - debug: + msg: 'Client Dependencies installed' + when: cache_cleaned.rc == 0 + + - name: install react scripts + tags: 'react scripts' + become: yes + shell: npm install --save react-scripts@3.0.1 react react-dom + args: + chdir: /var/lib/react/express_react_example/client + register: react_scripts + when: cache_cleaned.rc == 0 + + ################################################################# + + - name : compile the new build + tags: build + become: yes + shell: npm run build + args: + chdir: /var/lib/react/express_react_example/client + - debug: + msg: 'new build successfull' + + - name: Ansible check directory exists build in server. + stat: + path: /var/lib/react/express_react_example/build + register: files_to_delete_from_server + + - name: delete previous build folder in server + become: yes + shell: rm -rf build + args: + chdir: /var/lib/react/express_react_example/ + warn: false + register: build_delete_server + - debug: + msg: "deleting old build from server" + when: files_to_delete_from_server.stat.exists == true + + - name: copy new build to parent folder + become: yes + command: mv /var/lib/react/express_react_example/client/build /var/lib/react/express_react_example + register: build_copy + - debug: + msg: 'build copied' + when: build_delete_server.rc == 0 + + - name: "Install forever (to run Node.js app)." + become: yes + npm: + name: forever + global: yes + state: present + + - name: "Check list of Node.js apps running." + become: yes + command: forever list + register: forever_list + changed_when: false +>>>>>>> 526fcc749ba8644fccb39286d817d314a38308f0 + + - name: stop if the server is running + become: yes +<<<<<<< HEAD command: node /var/lib/react/express_react_example/server.js & # command: pm2 start /var/lib/react/express_react_example/server.js - debug: msg: 'yayyyyyyyyyyy app is running' - # when: stop_server.rc == 0 \ No newline at end of file + # when: stop_server.rc == 0 +======= + command: forever stopall + - debug: + msg: "server stopped" + when: forever_list.stdout.find('/var/lib/react/express_react_example/server.js') == "336" + + - name: "Start react.js app." + become: yes + command: forever start /var/lib/react/express_react_example/server.js + - debug: + msg: "server started" + when: forever_list.stdout.find('/var/lib/react/express_react_example/server.js') == -1 +>>>>>>> 526fcc749ba8644fccb39286d817d314a38308f0