Merge pull request #222 from SamR1/docker-tests

Updade docker commands + fix docker compose
This commit is contained in:
Sam 2022-07-23 16:51:02 +02:00 committed by GitHub
commit 8f5c48a893
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 126 additions and 24 deletions

View File

@ -95,4 +95,4 @@ jobs:
export TEST_APP_URL=http://$(hostname --ip-address):5000
sleep 5
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

View File

@ -50,11 +50,18 @@ docker-build-all: docker-build docker-build-client
docker-build-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-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-compose -f docker-compose-dev.yml logs --follow
@ -85,6 +92,18 @@ docker-shell:
docker-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-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."
$(FTCLI) users update $(USERNAME) --set-admin true
test-all: test-client test-python
test-e2e:
$(PYTEST) e2e --driver firefox $(PYTEST_ARGS)
test-all: test-client test-python
test-e2e-client:
E2E_ARGS=client $(PYTEST) e2e --driver firefox $(PYTEST_ARGS)

View File

@ -12,6 +12,8 @@ services:
- POSTGRES_PASSWORD=postgres
volumes:
- ./data/db:/var/lib/postgresql/data
networks:
- fittrackee-net
fittrackee:
container_name: fittrackee
@ -24,14 +26,12 @@ services:
- fittrackee-db
- redis
- mail
links:
- fittrackee-db
- redis
- mail
volumes:
- .:/usr/src/app
- ./data/workouts:/usr/src/app/workouts
- ./data/uploads:/usr/src/app/uploads
networks:
- fittrackee-net
fittrackee_client:
container_name: fittrackee_client
@ -57,6 +57,8 @@ services:
hostname: redis
ports:
- "6379:6379"
networks:
- fittrackee-net
mail:
container_name: fittrackee-mailhog
@ -64,3 +66,14 @@ services:
ports:
- "1025:1025"
- "8025:8025"
networks:
- fittrackee-net
selenium:
image: selenium/standalone-firefox:latest
hostname: selenium
privileged: true
shm_size: 2g
networks:
fittrackee-net:

View File

@ -2,7 +2,7 @@
set -e
cd /usr/src/app
source .env.docker
source .env
ftcli db drop
ftcli db upgrade

8
docker/lint-python.sh Executable file
View 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

View File

@ -2,6 +2,6 @@
set -e
cd /usr/src/app
source .env.docker
source .env
flask worker --processes=$WORKERS_PROCESSES >> dramatiq.log 2>&1

View File

@ -2,6 +2,6 @@
set -e
cd /usr/src/app
source .env.docker
source .env
ftcli users update $1 --set-admin true

View File

@ -2,6 +2,6 @@
set -e
cd /usr/src/app
source .env.docker
source .env
/bin/bash

8
docker/test-e2e.sh Executable file
View 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
View File

@ -0,0 +1,7 @@
#!/bin/bash
set -e
cd /usr/src/app
source .env
pytest fittrackee $*

View File

@ -710,16 +710,22 @@ Installation
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
$ git clone https://github.com/SamR1/FitTrackee.git
$ cd FitTrackee
$ 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)
@ -773,3 +779,12 @@ Open http://localhost:3000
.. note::
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

View File

@ -996,15 +996,23 @@ server {
</div>
<p>For evaluation purposes, docker files are available, installing <strong>FitTrackee</strong> from <strong>sources</strong>.</p>
<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>
<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
$ cp .env.docker .env
$ make docker-build docker-run docker-init
$ make docker-build
</pre></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>
<ul class="simple">
<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>Some environment variables need to be updated like <cite>UI_URL</cite></p>
</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>

File diff suppressed because one or more lines are too long

View File

@ -710,16 +710,22 @@ Installation
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
$ git clone https://github.com/SamR1/FitTrackee.git
$ cd FitTrackee
$ 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)
@ -773,3 +779,12 @@ Open http://localhost:3000
.. note::
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