Skip to content
Snippets Groups Projects
Commit 5abc4525 authored by matt01671's avatar matt01671
Browse files

react build

parent 9d557613
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
become: yes become: yes
apt: apt:
name: ['nodejs','npm'] name: ['nodejs','npm']
state: present state: latest
install_recommends: no install_recommends: no
update_cache: yes update_cache: yes
- debug: - debug:
...@@ -20,7 +20,16 @@ ...@@ -20,7 +20,16 @@
npm: npm:
name: npm name: npm
global: yes global: yes
state: present state: latest
- name: install pm2 server
tags: 'pm2'
become: yes
npm:
name: pm2
global: yes
state: latest
- name: install react - name: install react
tags: 'react' tags: 'react'
...@@ -30,6 +39,38 @@ ...@@ -30,6 +39,38 @@
global: yes global: yes
state: present state: present
- name: Checking folders
tags: 'volumes'
become: yes
stat:
path: "{{ item.mountpoint }}"
register: directory_stats
with_items:
- "{{ volumes }}"
- name: Create directory
tags: 'volumes'
become: yes
file:
path: "{{ item.item.mountpoint }}"
recurse: yes
state: directory
when: item.stat.exists == false
with_items:
- "{{ directory_stats.results }}"
- name: Mount device
tags: 'volumes'
become: yes
mount:
path: "{{ item.mountpoint }}"
src: "{{ item.device }}"
fstype: xfs
state: mounted
when: item.device is defined
with_items:
- "{{ volumes }}"
- name: traverse into the project directory. - name: traverse into the project directory.
become: yes become: yes
shell: cd shell: cd
...@@ -37,127 +78,167 @@ ...@@ -37,127 +78,167 @@
chdir: /var/lib/react chdir: /var/lib/react
register: dir_changed register: dir_changed
- name: create a new directory for git
become: yes
shell: mkdir react-app
args:
chdir: /var/lib/react/
register: new_dir
when: dir_changed.rc == 0
- name: traverse into the new directory.
become: yes
shell: cd
args:
chdir: /var/lib/react/react-app
register: new_dir_changed
when: new_dir.rc == 0
- name: clone git repo - name: clone git repo
become: yes become: yes
git: git:
repo: https://github.com/advait22/react-server.git repo: https://gitlab.eng.unimelb.edu.au/mohalloran/comp90023-assignment-2.git
dest: /var/lib/react dest: /var/lib/react/react-app/
force: yes force: yes
- debug: - debug:
msg: 'git repo cloned' msg: 'git repo cloned'
when: dir_changed.rc == 0 when: new_dir_changed.rc == 0
- name: change working directory to the app - name: navigate into the git directory.
become: yes become: yes
shell: cd shell: cd
args: args:
chdir: /var/lib/react/express_react_example chdir: /var/lib/react/react-app/
register: server register: nav_git
- name: delete unnecessary directories
become: yes
shell: rm -rf ansible/ couchDB/ CouchDB/ twitter_harvest/
args:
chdir: /var/lib/react/react-app/
- debug:
msg: 'delete unnecessary directories'
register: del_dir
# when: nav_git.rc == 0
- name: navigate to project dir
become: yes
shell: cd
args:
chdir: /var/lib/react/react-app/reactUI/
- debug:
msg: 'navigate successfully'
register: nav_project
- name: install all the packages for server - name: install all the packages for server
become: yes become: yes
npm: npm:
path: /var/lib/react/express_react_example/ path: /var/lib/react/react-app/reactUI/
name: install name: install
- debug: - debug:
msg: 'inside server' msg: 'inside server'
when: server.rc == 0 register: dep_install
- name: install dependencies
become: yes
command: npm install --save express
- debug:
msg: 'Client express installed'
- name: change working directory to the client - name: change working directory to the client
become: yes become: yes
shell: cd shell: cd
args: args:
chdir: /var/lib/react/express_react_example/client chdir: /var/lib/react/react-app/reactUI/choropleth-map
register: client register: client
- name: install dependencies - name: install dependencies
become: yes become: yes
npm: npm:
path: /var/lib/react/express_react_example/client path: /var/lib/react/react-app/reactUI/choropleth-map
name: install name: install
- debug: - debug:
msg: 'Client Dependencies installed' msg: 'Client Dependencies installed'
when: client.rc == 0 when: client.rc == 0
- name: Ansible check directory exists build in client. - name: Ansible check directory exists build in client.
stat: stat:
path: /var/lib/react/express_react_example/client/build path: /var/lib/react/react-app/reactUI/choropleth-map/build
register: files_to_delete register: files_to_delete
- name: delete previous build folder - name: delete previous build folder
become: yes become: yes
shell: rm -rf build shell: rm -rf build
args: args:
chdir: /var/lib/react/express_react_example/client/ chdir: /var/lib/react/react-app/reactUI/choropleth-map/
register: build_delete register: build_delete
- debug: - debug:
msg: "build deleted" msg: "build deleted"
when: files_to_delete.stat.exists == true when: files_to_delete.stat.exists == true
- name: delete dependencies on client # ###workaround for react js bug in build command
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 # - name: delete dependencies on client
become: yes # become: yes
npm: # shell: rm -rf node_modules package-lock.json
path: /var/lib/react/express_react_example/ # args:
name: express # chdir: /var/lib/react/react-app/reactUI/choropleth-map/
- debug: # register: deleted_modules
msg: 'Client express installed' # - debug:
# msg: 'Client Dependencies delete'
- name: install dependencies # - name: clear npm cache
become: yes # tags: 'clear cache'
npm: # become: yes
path: /var/lib/react/express_react_example/client # shell: npm cache clean --force
name: install # args:
- debug: # chdir: /var/lib/react/react-app/reactUI/choropleth-map/
msg: 'Client Dependencies installed' # register: cache_cleaned
when: cache_cleaned.rc == 0 # when: deleted_modules.rc == 0
# - name: install dependencies
# become: yes
# npm:
# path: /var/lib/react/react-app/reactUI/choropleth-map/
# name: install
# - debug:
# msg: 'Client Dependencies installed'
# when: cache_cleaned.rc == 0
- name: install react scripts - name: install react scripts
tags: 'react scripts' tags: 'react scripts'
become: yes become: yes
shell: npm install --save react-scripts@3.0.1 react react-dom shell: npm install --save react-scripts@3.0.1 react react-dom jquery @material-ui/core react-chartkick chart.js datamaps
args: args:
chdir: /var/lib/react/express_react_example/client chdir: /var/lib/react/react-app/reactUI/choropleth-map/
register: react_scripts register: react_scripts
when: cache_cleaned.rc == 0 # when: cache_cleaned.rc == 0
# #################################################################
- name : compile the new build - name : compile the new build
tags: build tags: build
become: yes become: yes
shell: npm run build shell: npm run build
args: args:
chdir: /var/lib/react/express_react_example/client chdir: /var/lib/react/react-app/reactUI/choropleth-map/
- debug: - debug:
msg: 'new build successfull' msg: 'new build successfull'
- name: Ansible check directory exists build in server. - name: Ansible check directory exists build in server.
stat: stat:
path: /var/lib/react/express_react_example/build path: /var/lib/react/react-app/reactUI/build
register: files_to_delete_from_server register: files_to_delete_from_server
- name: delete previous build folder in server - name: delete previous build folder in server
become: yes become: yes
shell: rm -rf build shell: rm -rf build
args: args:
chdir: /var/lib/react/express_react_example/ chdir: /var/lib/react/react-app/reactUI/
warn: false
register: build_delete_server register: build_delete_server
- debug: - debug:
msg: "deleting old build from server" msg: "deleting old build from server"
...@@ -165,35 +246,24 @@ ...@@ -165,35 +246,24 @@
- name: copy new build to parent folder - name: copy new build to parent folder
become: yes become: yes
command: mv /var/lib/react/express_react_example/client/build /var/lib/react/express_react_example command: cp -r /var/lib/react/react-app/reactUI/choropleth-map/build /var/lib/react/react-app/reactUI/
register: build_copy register: build_copy
- debug: - debug:
msg: 'build copied' msg: 'build copied'
when: build_delete_server.rc == 0 when: build_delete_server.rc == 0
- name: "Install forever (to run Node.js app)." - name: stop all the running server
become: yes
npm:
name: forever
global: yes
state: present
- name: "Check list of Node.js apps running."
become: yes become: yes
command: forever list command: pm2 stop all
register: forever_list register: stop_server
changed_when: false
- name: stop if the server is running
become: yes
command: forever stopall
- debug: - debug:
msg: "server stopped" msg: 'all servers stopped'
when: forever_list.stdout.find('/var/lib/react/express_react_example/server.js') == "336"
- name: "Start react.js app." - name: start the server
become: yes become: yes
command: forever start /var/lib/react/express_react_example/server.js command: pm2 start /var/lib/react/react-app/reactUI/server.js
- debug: - debug:
msg: "server started" msg: 'yayyyyyyyyyyy app is running'
when: forever_list.stdout.find('/var/lib/react/express_react_example/server.js') == -1 # when: stop_server.rc == 0
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment