Merge pull request #222 from SamR1/docker-tests
Updade docker commands + fix docker compose
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/.tests-python.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/.tests-python.yml
									
									
									
									
										vendored
									
									
								
							| @@ -95,4 +95,4 @@ jobs: | |||||||
|           export TEST_APP_URL=http://$(hostname --ip-address):5000 |           export TEST_APP_URL=http://$(hostname --ip-address):5000 | ||||||
|           sleep 5 |           sleep 5 | ||||||
|           nohup flask worker --processes=1 >> nohup.out 2>&1 & |           nohup flask worker --processes=1 >> nohup.out 2>&1 & | ||||||
|           pytest e2e --driver Remote --capability browserName firefox --host selenium --port 4444 |           pytest e2e --driver Remote --capability browserName firefox --selenium-host selenium --selenium-port 4444 | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Makefile
									
									
									
									
									
								
							| @@ -50,11 +50,18 @@ docker-build-all: docker-build docker-build-client | |||||||
| docker-build-client: | docker-build-client: | ||||||
| 	docker-compose -f docker-compose-dev.yml build fittrackee_client | 	docker-compose -f docker-compose-dev.yml build fittrackee_client | ||||||
|  |  | ||||||
| docker-init: docker-init-db docker-restart docker-run-workers | docker-init: docker-run docker-init-db docker-restart docker-run-workers | ||||||
|  |  | ||||||
| docker-init-db: | docker-init-db: | ||||||
| 	docker-compose -f docker-compose-dev.yml exec fittrackee docker/init-database.sh | 	docker-compose -f docker-compose-dev.yml exec fittrackee docker/init-database.sh | ||||||
|  |  | ||||||
|  | docker-lint-client: | ||||||
|  | 	docker-compose -f docker-compose-dev.yml up -d fittrackee_client | ||||||
|  | 	docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn lint | ||||||
|  |  | ||||||
|  | docker-lint-python: docker-run | ||||||
|  | 	docker-compose -f docker-compose-dev.yml exec fittrackee docker/lint-python.sh | ||||||
|  |  | ||||||
| docker-logs: | docker-logs: | ||||||
| 	docker-compose -f docker-compose-dev.yml logs --follow | 	docker-compose -f docker-compose-dev.yml logs --follow | ||||||
|  |  | ||||||
| @@ -85,6 +92,18 @@ docker-shell: | |||||||
| docker-stop: | docker-stop: | ||||||
| 	docker-compose -f docker-compose-dev.yml stop | 	docker-compose -f docker-compose-dev.yml stop | ||||||
|  |  | ||||||
|  | docker-test-client: | ||||||
|  | 	docker-compose -f docker-compose-dev.yml up -d fittrackee_client | ||||||
|  | 	docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn test:unit | ||||||
|  |  | ||||||
|  | # needs a running application | ||||||
|  | docker-test-e2e: docker-run | ||||||
|  | 	docker-compose -f docker-compose-dev.yml up -d selenium | ||||||
|  | 	docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-e2e.sh $(PYTEST_ARGS) | ||||||
|  |  | ||||||
|  | docker-test-python: docker-run | ||||||
|  | 	docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-python.sh $(PYTEST_ARGS) | ||||||
|  |  | ||||||
| docker-up: | docker-up: | ||||||
| 	docker-compose -f docker-compose-dev.yml up fittrackee | 	docker-compose -f docker-compose-dev.yml up fittrackee | ||||||
|  |  | ||||||
| @@ -184,11 +203,11 @@ set-admin: | |||||||
| 	echo "Deprecated command, will be removed in a next version. Use 'user-set-admin' instead." | 	echo "Deprecated command, will be removed in a next version. Use 'user-set-admin' instead." | ||||||
| 	$(FTCLI) users update $(USERNAME) --set-admin true | 	$(FTCLI) users update $(USERNAME) --set-admin true | ||||||
|  |  | ||||||
|  | test-all: test-client test-python | ||||||
|  |  | ||||||
| test-e2e: | test-e2e: | ||||||
| 	$(PYTEST) e2e --driver firefox $(PYTEST_ARGS) | 	$(PYTEST) e2e --driver firefox $(PYTEST_ARGS) | ||||||
|  |  | ||||||
| test-all: test-client test-python |  | ||||||
|  |  | ||||||
| test-e2e-client: | test-e2e-client: | ||||||
| 	E2E_ARGS=client $(PYTEST) e2e --driver firefox $(PYTEST_ARGS) | 	E2E_ARGS=client $(PYTEST) e2e --driver firefox $(PYTEST_ARGS) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,6 +12,8 @@ services: | |||||||
|       - POSTGRES_PASSWORD=postgres |       - POSTGRES_PASSWORD=postgres | ||||||
|     volumes: |     volumes: | ||||||
|       - ./data/db:/var/lib/postgresql/data |       - ./data/db:/var/lib/postgresql/data | ||||||
|  |     networks: | ||||||
|  |       - fittrackee-net | ||||||
|    |    | ||||||
|   fittrackee: |   fittrackee: | ||||||
|     container_name: fittrackee |     container_name: fittrackee | ||||||
| @@ -24,14 +26,12 @@ services: | |||||||
|       - fittrackee-db |       - fittrackee-db | ||||||
|       - redis |       - redis | ||||||
|       - mail |       - mail | ||||||
|     links: |  | ||||||
|       - fittrackee-db |  | ||||||
|       - redis |  | ||||||
|       - mail |  | ||||||
|     volumes: |     volumes: | ||||||
|       - .:/usr/src/app |       - .:/usr/src/app | ||||||
|       - ./data/workouts:/usr/src/app/workouts |       - ./data/workouts:/usr/src/app/workouts | ||||||
|       - ./data/uploads:/usr/src/app/uploads |       - ./data/uploads:/usr/src/app/uploads | ||||||
|  |     networks: | ||||||
|  |       - fittrackee-net | ||||||
|  |  | ||||||
|   fittrackee_client: |   fittrackee_client: | ||||||
|     container_name: fittrackee_client |     container_name: fittrackee_client | ||||||
| @@ -57,6 +57,8 @@ services: | |||||||
|     hostname: redis |     hostname: redis | ||||||
|     ports: |     ports: | ||||||
|       - "6379:6379" |       - "6379:6379" | ||||||
|  |     networks: | ||||||
|  |       - fittrackee-net | ||||||
|  |  | ||||||
|   mail: |   mail: | ||||||
|     container_name: fittrackee-mailhog |     container_name: fittrackee-mailhog | ||||||
| @@ -64,3 +66,14 @@ services: | |||||||
|     ports: |     ports: | ||||||
|       - "1025:1025" |       - "1025:1025" | ||||||
|       - "8025:8025" |       - "8025:8025" | ||||||
|  |     networks: | ||||||
|  |       - fittrackee-net | ||||||
|  |  | ||||||
|  |   selenium: | ||||||
|  |     image: selenium/standalone-firefox:latest | ||||||
|  |     hostname: selenium | ||||||
|  |     privileged: true | ||||||
|  |     shm_size: 2g | ||||||
|  |  | ||||||
|  | networks: | ||||||
|  |   fittrackee-net: | ||||||
| @@ -2,7 +2,7 @@ | |||||||
| set -e | set -e | ||||||
| cd /usr/src/app | cd /usr/src/app | ||||||
|  |  | ||||||
| source .env.docker | source .env | ||||||
|  |  | ||||||
| ftcli db drop | ftcli db drop | ||||||
| ftcli db upgrade | ftcli db upgrade | ||||||
							
								
								
									
										8
									
								
								docker/lint-python.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								docker/lint-python.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | cd /usr/src/app | ||||||
|  |  | ||||||
|  | source .env | ||||||
|  |  | ||||||
|  | mypy fittrackee | ||||||
|  | pytest --flake8 --isort --black -m "flake8 or isort or black" fittrackee e2e --ignore=fittrackee/migrations | ||||||
| @@ -2,6 +2,6 @@ | |||||||
| set -e | set -e | ||||||
| cd /usr/src/app | cd /usr/src/app | ||||||
|  |  | ||||||
| source .env.docker | source .env | ||||||
|  |  | ||||||
| flask worker --processes=$WORKERS_PROCESSES >> dramatiq.log  2>&1 | flask worker --processes=$WORKERS_PROCESSES >> dramatiq.log  2>&1 | ||||||
|   | |||||||
| @@ -2,6 +2,6 @@ | |||||||
| set -e | set -e | ||||||
| cd /usr/src/app | cd /usr/src/app | ||||||
|  |  | ||||||
| source .env.docker | source .env | ||||||
|  |  | ||||||
| ftcli users update $1 --set-admin true | ftcli users update $1 --set-admin true | ||||||
|   | |||||||
| @@ -2,6 +2,6 @@ | |||||||
| set -e | set -e | ||||||
| cd /usr/src/app | cd /usr/src/app | ||||||
|  |  | ||||||
| source .env.docker | source .env | ||||||
|  |  | ||||||
| /bin/bash | /bin/bash | ||||||
							
								
								
									
										8
									
								
								docker/test-e2e.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								docker/test-e2e.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | cd /usr/src/app | ||||||
|  |  | ||||||
|  | source .env | ||||||
|  |  | ||||||
|  | export TEST_APP_URL=http://$(hostname --ip-address):5000 | ||||||
|  | pytest e2e --driver Remote --capability browserName firefox --selenium-host selenium --selenium-port 4444 $* | ||||||
							
								
								
									
										7
									
								
								docker/test-python.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								docker/test-python.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | cd /usr/src/app | ||||||
|  |  | ||||||
|  | source .env | ||||||
|  |  | ||||||
|  | pytest fittrackee $* | ||||||
| @@ -710,16 +710,22 @@ Installation | |||||||
|  |  | ||||||
| For evaluation purposes, docker files are available, installing **FitTrackee** from **sources**. | For evaluation purposes, docker files are available, installing **FitTrackee** from **sources**. | ||||||
|  |  | ||||||
| - To install **FitTrackee** with database initialisation and run the application and dramatiq workers: | - To install **FitTrackee**: | ||||||
|  |  | ||||||
| .. code-block:: bash | .. code-block:: bash | ||||||
|  |  | ||||||
|     $ git clone https://github.com/SamR1/FitTrackee.git |     $ git clone https://github.com/SamR1/FitTrackee.git | ||||||
|     $ cd FitTrackee |     $ cd FitTrackee | ||||||
|     $ cp .env.docker .env |     $ cp .env.docker .env | ||||||
|     $ make docker-build docker-run docker-init |     $ make docker-build | ||||||
|  |  | ||||||
| Open http://localhost:5000 and register. | - To initialise database: | ||||||
|  |  | ||||||
|  | .. code-block:: bash | ||||||
|  |  | ||||||
|  |     $ docker-init | ||||||
|  |  | ||||||
|  | - Open http://localhost:5000 and register. | ||||||
|  |  | ||||||
| Open http://localhost:8025 to access `MailHog interface <https://github.com/mailhog/MailHog>`_ (email testing tool) | Open http://localhost:8025 to access `MailHog interface <https://github.com/mailhog/MailHog>`_ (email testing tool) | ||||||
|  |  | ||||||
| @@ -773,3 +779,12 @@ Open http://localhost:3000 | |||||||
|  |  | ||||||
| .. note:: | .. note:: | ||||||
|     Some environment variables need to be updated like `UI_URL` |     Some environment variables need to be updated like `UI_URL` | ||||||
|  |  | ||||||
|  | - to run lint or tests: | ||||||
|  |  | ||||||
|  | .. code-block:: bash | ||||||
|  |  | ||||||
|  |     $ make lint-client  # run lint on javascript files | ||||||
|  |     $ make test-client  # run unit tests on Client | ||||||
|  |     $ make lint-python  # run type check and lint on python files | ||||||
|  |     $ make test-python  # run unit tests on API | ||||||
| @@ -996,15 +996,23 @@ server { | |||||||
| </div> | </div> | ||||||
| <p>For evaluation purposes, docker files are available, installing <strong>FitTrackee</strong> from <strong>sources</strong>.</p> | <p>For evaluation purposes, docker files are available, installing <strong>FitTrackee</strong> from <strong>sources</strong>.</p> | ||||||
| <ul class="simple"> | <ul class="simple"> | ||||||
| <li><p>To install <strong>FitTrackee</strong> with database initialisation and run the application and dramatiq workers:</p></li> | <li><p>To install <strong>FitTrackee</strong>:</p></li> | ||||||
| </ul> | </ul> | ||||||
| <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ git clone https://github.com/SamR1/FitTrackee.git | <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ git clone https://github.com/SamR1/FitTrackee.git | ||||||
| $ <span class="nb">cd</span> FitTrackee | $ <span class="nb">cd</span> FitTrackee | ||||||
| $ cp .env.docker .env | $ cp .env.docker .env | ||||||
| $ make docker-build docker-run docker-init | $ make docker-build | ||||||
| </pre></div> | </pre></div> | ||||||
| </div> | </div> | ||||||
| <p>Open <a class="reference external" href="http://localhost:5000">http://localhost:5000</a> and register.</p> | <ul class="simple"> | ||||||
|  | <li><p>To initialise database:</p></li> | ||||||
|  | </ul> | ||||||
|  | <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ docker-init | ||||||
|  | </pre></div> | ||||||
|  | </div> | ||||||
|  | <ul class="simple"> | ||||||
|  | <li><p>Open <a class="reference external" href="http://localhost:5000">http://localhost:5000</a> and register.</p></li> | ||||||
|  | </ul> | ||||||
| <p>Open <a class="reference external" href="http://localhost:8025">http://localhost:8025</a> to access <a class="reference external" href="https://github.com/mailhog/MailHog">MailHog interface</a> (email testing tool)</p> | <p>Open <a class="reference external" href="http://localhost:8025">http://localhost:8025</a> to access <a class="reference external" href="https://github.com/mailhog/MailHog">MailHog interface</a> (email testing tool)</p> | ||||||
| <ul class="simple"> | <ul class="simple"> | ||||||
| <li><p>To set admin rights to the newly created account, use the following command line:</p></li> | <li><p>To set admin rights to the newly created account, use the following command line:</p></li> | ||||||
| @@ -1057,6 +1065,15 @@ $ make docker-build docker-run docker-init | |||||||
| <p class="admonition-title">Note</p> | <p class="admonition-title">Note</p> | ||||||
| <p>Some environment variables need to be updated like <cite>UI_URL</cite></p> | <p>Some environment variables need to be updated like <cite>UI_URL</cite></p> | ||||||
| </div> | </div> | ||||||
|  | <ul class="simple"> | ||||||
|  | <li><p>to run lint or tests:</p></li> | ||||||
|  | </ul> | ||||||
|  | <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ make lint-client  <span class="c1"># run lint on javascript files</span> | ||||||
|  | $ make test-client  <span class="c1"># run unit tests on Client</span> | ||||||
|  | $ make lint-python  <span class="c1"># run type check and lint on python files</span> | ||||||
|  | $ make test-python  <span class="c1"># run unit tests on API</span> | ||||||
|  | </pre></div> | ||||||
|  | </div> | ||||||
| </section> | </section> | ||||||
| </section> | </section> | ||||||
| </section> | </section> | ||||||
|   | |||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -710,16 +710,22 @@ Installation | |||||||
|  |  | ||||||
| For evaluation purposes, docker files are available, installing **FitTrackee** from **sources**. | For evaluation purposes, docker files are available, installing **FitTrackee** from **sources**. | ||||||
|  |  | ||||||
| - To install **FitTrackee** with database initialisation and run the application and dramatiq workers: | - To install **FitTrackee**: | ||||||
|  |  | ||||||
| .. code-block:: bash | .. code-block:: bash | ||||||
|  |  | ||||||
|     $ git clone https://github.com/SamR1/FitTrackee.git |     $ git clone https://github.com/SamR1/FitTrackee.git | ||||||
|     $ cd FitTrackee |     $ cd FitTrackee | ||||||
|     $ cp .env.docker .env |     $ cp .env.docker .env | ||||||
|     $ make docker-build docker-run docker-init |     $ make docker-build | ||||||
|  |  | ||||||
| Open http://localhost:5000 and register. | - To initialise database: | ||||||
|  |  | ||||||
|  | .. code-block:: bash | ||||||
|  |  | ||||||
|  |     $ docker-init | ||||||
|  |  | ||||||
|  | - Open http://localhost:5000 and register. | ||||||
|  |  | ||||||
| Open http://localhost:8025 to access `MailHog interface <https://github.com/mailhog/MailHog>`_ (email testing tool) | Open http://localhost:8025 to access `MailHog interface <https://github.com/mailhog/MailHog>`_ (email testing tool) | ||||||
|  |  | ||||||
| @@ -773,3 +779,12 @@ Open http://localhost:3000 | |||||||
|  |  | ||||||
| .. note:: | .. note:: | ||||||
|     Some environment variables need to be updated like `UI_URL` |     Some environment variables need to be updated like `UI_URL` | ||||||
|  |  | ||||||
|  | - to run lint or tests: | ||||||
|  |  | ||||||
|  | .. code-block:: bash | ||||||
|  |  | ||||||
|  |     $ make lint-client  # run lint on javascript files | ||||||
|  |     $ make test-client  # run unit tests on Client | ||||||
|  |     $ make lint-python  # run type check and lint on python files | ||||||
|  |     $ make test-python  # run unit tests on API | ||||||
		Reference in New Issue
	
	Block a user