Browse Source

🚚 Move location of scripts to simplify file structure (#1352)

pull/13907/head
Sebastián Ramírez 10 months ago
committed by GitHub
parent
commit
87254dd79e
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      .github/workflows/test.yml
  2. 6
      backend/Dockerfile
  3. 6
      backend/README.md
  4. 4
      backend/scripts/prestart.sh
  5. 7
      backend/scripts/tests-start.sh
  6. 7
      backend/tests-start.sh
  7. 2
      docker-compose.yml
  8. 2
      scripts/test-local.sh
  9. 2
      scripts/test.sh

4
.github/workflows/test.yml

@ -26,9 +26,9 @@ jobs:
- run: docker compose down -v --remove-orphans
- run: docker compose up -d
- name: Lint
run: docker compose exec -T backend bash /app/scripts/lint.sh
run: docker compose exec -T backend bash scripts/lint.sh
- name: Run tests
run: docker compose exec -T backend bash /app/tests-start.sh "Coverage for ${{ github.sha }}"
run: docker compose exec -T backend bash scripts/tests-start.sh "Coverage for ${{ github.sha }}"
- run: docker compose down -v --remove-orphans
- name: Store coverage files
uses: actions/upload-artifact@v4

6
backend/Dockerfile

@ -17,14 +17,10 @@ RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; els
ENV PYTHONPATH=/app
COPY ./scripts/ /app/
COPY ./scripts /app/scripts
COPY ./alembic.ini /app/
COPY ./prestart.sh /app/
COPY ./tests-start.sh /app/
COPY ./app /app/app
CMD ["fastapi", "run", "--workers", "4", "app/main.py"]

6
backend/README.md

@ -106,15 +106,15 @@ If you use GitHub Actions the tests will run automatically.
If your stack is already up and you just want to run the tests, you can use:
```bash
docker compose exec backend bash /app/tests-start.sh
docker compose exec backend bash scripts/tests-start.sh
```
That `/app/tests-start.sh` script just calls `pytest` after making sure that the rest of the stack is running. If you need to pass extra arguments to `pytest`, you can pass them to that command and they will be forwarded.
That `/app/scripts/tests-start.sh` script just calls `pytest` after making sure that the rest of the stack is running. If you need to pass extra arguments to `pytest`, you can pass them to that command and they will be forwarded.
For example, to stop on first error:
```bash
docker compose exec backend bash /app/tests-start.sh -x
docker compose exec backend bash scripts/tests-start.sh -x
```
### Test Coverage

4
backend/prestart.sh → backend/scripts/prestart.sh

@ -1,10 +1,10 @@
#! /usr/bin/env bash
# Let the DB start
python /app/app/backend_pre_start.py
python app/backend_pre_start.py
# Run migrations
alembic upgrade head
# Create initial data in DB
python /app/app/initial_data.py
python app/initial_data.py

7
backend/scripts/tests-start.sh

@ -0,0 +1,7 @@
#! /usr/bin/env bash
set -e
set -x
python app/tests_pre_start.py
bash scripts/test.sh "$@"

7
backend/tests-start.sh

@ -1,7 +0,0 @@
#! /usr/bin/env bash
set -e
set -x
python /app/app/tests_pre_start.py
bash ./scripts/test.sh "$@"

2
docker-compose.yml

@ -55,7 +55,7 @@ services:
db:
condition: service_healthy
restart: true
command: bash prestart.sh
command: bash scripts/prestart.sh
env_file:
- .env
environment:

2
scripts/test-local.sh

@ -12,4 +12,4 @@ fi
docker-compose build
docker-compose up -d
docker-compose exec -T backend bash /app/tests-start.sh "$@"
docker-compose exec -T backend bash scripts/tests-start.sh "$@"

2
scripts/test.sh

@ -7,5 +7,5 @@ set -x
docker compose build
docker compose down -v --remove-orphans # Remove possibly previous broken stacks left hanging after an error
docker compose up -d
docker compose exec -T backend bash /app/tests-start.sh "$@"
docker compose exec -T backend bash scripts/tests-start.sh "$@"
docker compose down -v --remove-orphans

Loading…
Cancel
Save