Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOP-13277] Collect coverage results #8

Merged
merged 45 commits into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7d4245b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e128e94
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
c4f01f1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
1c3496e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
ead710b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
960c60b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
f5179a9
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
7c28f95
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
563b97c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
fba0bd1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
9f5fcd4
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e21146c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
da9d30b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
8dd7513
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
3f042f2
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
2005c89
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
c5d7c17
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e646a8e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
eca6f6d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
8cecb41
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
bc6f58f
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
7854b3a
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
47dbdad
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
1fb9ecf
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
96dfe91
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
2db8ee1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
423538c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
6d03b2d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
d0eb229
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e4a7624
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
20cfd3b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
f7ef533
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
22abd5e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
81e5d2b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
53c3d4f
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
af9311d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
690580d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
78856c2
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
affc2c8
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
122f692
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
98c90ff
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
1c7d8f5
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
ab62d0e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
d065a7b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
a603127
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions .github/workflows/hdfs-tests.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
name: HDFS Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
workflow_call:

env:
DEFAULT_PYTHON: '3.11'
Expand Down Expand Up @@ -76,10 +66,16 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m hdfs
docker compose -f ./docker-compose.test.yml exec -T worker python -m coverage run -m pytest -vvv -s -m hdfs
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Upload coverage results
uses: actions/upload-artifact@v4
with:
name: hdfs-tests
path: reports/*

- name: Shutdown
if: always()
run: |
Expand Down
21 changes: 9 additions & 12 deletions .github/workflows/hive-tests.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
name: Hive Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
workflow_call:

env:
DEFAULT_PYTHON: '3.11'
Expand Down Expand Up @@ -76,10 +66,17 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m hive
docker compose -f ./docker-compose.test.yml exec -T worker python -m coverage run -m pytest -vvv -s -m hive
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster


- name: Upload coverage results
uses: actions/upload-artifact@v4
with:
name: hive-tests
path: reports/*

- name: Shutdown
if: always()
run: |
Expand Down
20 changes: 8 additions & 12 deletions .github/workflows/oracle-tests.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
name: Oracle Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
workflow_call:

env:
DEFAULT_PYTHON: '3.11'
Expand Down Expand Up @@ -76,10 +66,16 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m oracle
docker compose -f ./docker-compose.test.yml exec -T worker python -m coverage run -m pytest -vvv -s -m oracle
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster


- name: Upload coverage results
uses: actions/upload-artifact@v4
with:
name: oracle-tests
path: reports/*
- name: Shutdown
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
if: always()
run: |
Expand Down
20 changes: 8 additions & 12 deletions .github/workflows/s3-tests.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
name: S3 Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
workflow_call:

env:
DEFAULT_PYTHON: '3.11'
Expand Down Expand Up @@ -76,10 +66,16 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m s3
docker compose -f ./docker-compose.test.yml exec -T worker python -m coverage run -m pytest -vvv -s -m s3
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster


- name: Upload coverage results
uses: actions/upload-artifact@v4
with:
name: s3-tests
path: reports/*
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
- name: Shutdown
if: always()
run: |
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Run All Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

env:
DEFAULT_PYTHON: '3.11'

jobs:
oracle_tests:
name: Oracle tests
uses: ./.github/workflows/oracle-tests.yml

hive_tests:
name: Hive tests
uses: ./.github/workflows/hive-tests.yml

s3_tests:
name: S3 tests
uses: ./.github/workflows/s3-tests.yml

unit_tests:
name: Unit tests
uses: ./.github/workflows/unit-test.yml

all_done:
name: Tests done
runs-on: ubuntu-latest

env:
POETRY_VERSION: 1.6.1

needs: [oracle_tests, hive_tests, s3_tests, unit_tests]
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.DEFAULT_PYTHON }}

- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-python-${{ env.DEFAULT_PYTHON }}-coverage

- name: Upgrade pip
run: python -m pip install --upgrade pip setuptools wheel

- name: Install dependencies
run: pip install -I coverage pytest

- name: Download all coverage reports
uses: actions/download-artifact@v4
with:
path: reports

- name: Move coverage data to the root folder
run: find reports -type f -exec mv '{}' reports \;

- name: Generate coverate reports
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
run: ./combine_coverage.sh
31 changes: 9 additions & 22 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
name: Unit Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

workflow_call:

env:
DEFAULT_PYTHON: '3.11'
Expand Down Expand Up @@ -57,7 +46,7 @@ jobs:

- name: Install dependencies
run: |
poetry install --no-root --with backend,test
poetry install --no-root --with backend,test,dev
dolfinus marked this conversation as resolved.
Show resolved Hide resolved

- name: Start docker compose
run: |
Expand All @@ -66,21 +55,19 @@ jobs:
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Run DB Tests.
run: |
source .env.local
mkdir -p reports/
poetry run coverage run -m pytest -vvv -s ./syncmaster/tests/test_database
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Run Unit Tests.
run: |
source .env.local
poetry run coverage run -m pytest -vvv -s ./syncmaster/tests/test_unit
./pytest_runner.sh -m backend
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Upload coverage results
uses: actions/upload-artifact@v4
with:
name: unit-tests
path: reports/*

- name: Shutdown
if: always()
run: |
Expand Down
5 changes: 5 additions & 0 deletions combine_coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

root_path=$(dirname $(realpath $0))
coverage combine --rcfile=syncmaster/tests/.coveragerc
coverage xml --rcfile=syncmaster/tests/.coveragerc -o $root_path/reports/coverage.xml -i
3 changes: 3 additions & 0 deletions docker-compose.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ services:
- test-s3
volumes:
- ./cached_jars:/root/.ivy2
- ./reports:/syncmaster/reports
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
env_file: .env.docker

backend:
Expand All @@ -52,7 +53,9 @@ services:
- test-s3
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
volumes:
- ./cached_jars:/root/.ivy2
- ./reports:/syncmaster/reports
env_file: .env.docker
command: [coverage, run, app/main.py]

rabbitmq:
image: rabbitmq
Expand Down
2 changes: 1 addition & 1 deletion docker/worker.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ FROM prod as test

ENV CREATE_SPARK_SESSION_FUNCTION="tests.spark.get_worker_spark_session.get_worker_spark_session"
# Queue for tests
CMD ["celery", "-A" ,"app.tasks.config.celery", "worker", "--loglevel=info", "--max-tasks-per-child=1", "-Q", "test_queue"]
CMD ["coverage", "run", "-m", "celery", "-A" ,"app.tasks.config.celery", "worker", "--loglevel=info", "--max-tasks-per-child=1", "-Q", "test_queue"]
Loading