From 7a3ab150d6479f9524f5d7ec6f27d4db3b6ed9fa Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Tue, 25 Jun 2024 17:52:24 +0200 Subject: [PATCH] Update our Codecov setup (#3190) This PR: - Cleans up our pytest configuration and moves everything into pytest.ini - Make our Codecov setup more valuable. If there is now a test failing we get a comment in the PR showing the failing test and its output. --- .github/workflows/test-integrations-ai.yml | 40 +++++++++---- .../test-integrations-aws-lambda.yml | 12 +++- .../test-integrations-cloud-computing.yml | 36 ++++++++---- .../workflows/test-integrations-common.yml | 12 +++- .../test-integrations-data-processing.yml | 44 ++++++++++----- .../workflows/test-integrations-databases.yml | 44 ++++++++++----- .../workflows/test-integrations-graphql.yml | 36 ++++++++---- .../test-integrations-miscellaneous.yml | 36 ++++++++---- .../test-integrations-networking.yml | 36 ++++++++---- .../test-integrations-web-frameworks-1.yml | 36 ++++++++---- .../test-integrations-web-frameworks-2.yml | 56 ++++++++++++------- .gitignore | 1 + codecov.yml | 16 +++++- pytest.ini | 13 ++--- .../templates/test_group.jinja | 15 ++++- tox.ini | 10 +++- 16 files changed, 314 insertions(+), 129 deletions(-) diff --git a/.github/workflows/test-integrations-ai.yml b/.github/workflows/test-integrations-ai.yml index b92ed9c61d..6653e989be 100644 --- a/.github/workflows/test-integrations-ai.yml +++ b/.github/workflows/test-integrations-ai.yml @@ -45,31 +45,39 @@ jobs: - name: Test anthropic latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-anthropic-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-anthropic-latest" - name: Test cohere latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-cohere-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-cohere-latest" - name: Test langchain latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-latest" - name: Test openai latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-openai-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-openai-latest" - name: Test huggingface_hub latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-huggingface_hub-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-huggingface_hub-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-ai-pinned: name: AI (pinned) timeout-minutes: 30 @@ -97,31 +105,39 @@ jobs: - name: Test anthropic pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-anthropic" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-anthropic" - name: Test cohere pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-cohere" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-cohere" - name: Test langchain pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain" - name: Test openai pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-openai" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-openai" - name: Test huggingface_hub pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-huggingface_hub" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-huggingface_hub" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All AI tests passed needs: test-ai-pinned diff --git a/.github/workflows/test-integrations-aws-lambda.yml b/.github/workflows/test-integrations-aws-lambda.yml index 4bb2b11131..8f8cbc18f1 100644 --- a/.github/workflows/test-integrations-aws-lambda.yml +++ b/.github/workflows/test-integrations-aws-lambda.yml @@ -80,15 +80,23 @@ jobs: - name: Test aws_lambda pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-aws_lambda" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-aws_lambda" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All AWS Lambda tests passed needs: test-aws_lambda-pinned diff --git a/.github/workflows/test-integrations-cloud-computing.yml b/.github/workflows/test-integrations-cloud-computing.yml index f53a667ad2..e2bab93dc1 100644 --- a/.github/workflows/test-integrations-cloud-computing.yml +++ b/.github/workflows/test-integrations-cloud-computing.yml @@ -45,27 +45,35 @@ jobs: - name: Test boto3 latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-boto3-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-boto3-latest" - name: Test chalice latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-chalice-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-chalice-latest" - name: Test cloud_resource_context latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-cloud_resource_context-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-cloud_resource_context-latest" - name: Test gcp latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-gcp-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-gcp-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-cloud_computing-pinned: name: Cloud Computing (pinned) timeout-minutes: 30 @@ -93,27 +101,35 @@ jobs: - name: Test boto3 pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-boto3" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-boto3" - name: Test chalice pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-chalice" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-chalice" - name: Test cloud_resource_context pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-cloud_resource_context" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-cloud_resource_context" - name: Test gcp pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gcp" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gcp" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Cloud Computing tests passed needs: test-cloud_computing-pinned diff --git a/.github/workflows/test-integrations-common.yml b/.github/workflows/test-integrations-common.yml index e611db9894..4b1b13f289 100644 --- a/.github/workflows/test-integrations-common.yml +++ b/.github/workflows/test-integrations-common.yml @@ -45,15 +45,23 @@ jobs: - name: Test common pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-common" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-common" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Common tests passed needs: test-common-pinned diff --git a/.github/workflows/test-integrations-data-processing.yml b/.github/workflows/test-integrations-data-processing.yml index be2ffc24e1..5d768bb7d0 100644 --- a/.github/workflows/test-integrations-data-processing.yml +++ b/.github/workflows/test-integrations-data-processing.yml @@ -47,35 +47,43 @@ jobs: - name: Test arq latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-arq-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-arq-latest" - name: Test beam latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-beam-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-beam-latest" - name: Test celery latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-celery-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-celery-latest" - name: Test huey latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-huey-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-huey-latest" - name: Test rq latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-rq-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-rq-latest" - name: Test spark latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-spark-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-spark-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-data_processing-pinned: name: Data Processing (pinned) timeout-minutes: 30 @@ -105,35 +113,43 @@ jobs: - name: Test arq pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-arq" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-arq" - name: Test beam pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-beam" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-beam" - name: Test celery pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-celery" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-celery" - name: Test huey pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-huey" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-huey" - name: Test rq pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-rq" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-rq" - name: Test spark pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-spark" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-spark" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Data Processing tests passed needs: test-data_processing-pinned diff --git a/.github/workflows/test-integrations-databases.yml b/.github/workflows/test-integrations-databases.yml index e03aa8aa60..d0ecc89c94 100644 --- a/.github/workflows/test-integrations-databases.yml +++ b/.github/workflows/test-integrations-databases.yml @@ -64,35 +64,43 @@ jobs: - name: Test asyncpg latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-asyncpg-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-asyncpg-latest" - name: Test clickhouse_driver latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-clickhouse_driver-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-clickhouse_driver-latest" - name: Test pymongo latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-pymongo-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-pymongo-latest" - name: Test redis latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-redis-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-redis-latest" - name: Test redis_py_cluster_legacy latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-redis_py_cluster_legacy-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-redis_py_cluster_legacy-latest" - name: Test sqlalchemy latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-sqlalchemy-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-sqlalchemy-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-databases-pinned: name: Databases (pinned) timeout-minutes: 30 @@ -139,35 +147,43 @@ jobs: - name: Test asyncpg pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-asyncpg" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-asyncpg" - name: Test clickhouse_driver pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-clickhouse_driver" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-clickhouse_driver" - name: Test pymongo pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pymongo" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pymongo" - name: Test redis pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-redis" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-redis" - name: Test redis_py_cluster_legacy pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-redis_py_cluster_legacy" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-redis_py_cluster_legacy" - name: Test sqlalchemy pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-sqlalchemy" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-sqlalchemy" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Databases tests passed needs: test-databases-pinned diff --git a/.github/workflows/test-integrations-graphql.yml b/.github/workflows/test-integrations-graphql.yml index d90a2f8b53..dd17bf51ec 100644 --- a/.github/workflows/test-integrations-graphql.yml +++ b/.github/workflows/test-integrations-graphql.yml @@ -45,27 +45,35 @@ jobs: - name: Test ariadne latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-ariadne-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-ariadne-latest" - name: Test gql latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-gql-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-gql-latest" - name: Test graphene latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-graphene-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-graphene-latest" - name: Test strawberry latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-strawberry-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-strawberry-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-graphql-pinned: name: GraphQL (pinned) timeout-minutes: 30 @@ -93,27 +101,35 @@ jobs: - name: Test ariadne pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-ariadne" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-ariadne" - name: Test gql pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gql" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gql" - name: Test graphene pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-graphene" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-graphene" - name: Test strawberry pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-strawberry" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-strawberry" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All GraphQL tests passed needs: test-graphql-pinned diff --git a/.github/workflows/test-integrations-miscellaneous.yml b/.github/workflows/test-integrations-miscellaneous.yml index 1dd1b9c607..171fbd72c5 100644 --- a/.github/workflows/test-integrations-miscellaneous.yml +++ b/.github/workflows/test-integrations-miscellaneous.yml @@ -45,27 +45,35 @@ jobs: - name: Test loguru latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-loguru-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-loguru-latest" - name: Test opentelemetry latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-opentelemetry-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-opentelemetry-latest" - name: Test pure_eval latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-pure_eval-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-pure_eval-latest" - name: Test trytond latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-trytond-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-trytond-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-miscellaneous-pinned: name: Miscellaneous (pinned) timeout-minutes: 30 @@ -93,27 +101,35 @@ jobs: - name: Test loguru pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-loguru" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-loguru" - name: Test opentelemetry pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-opentelemetry" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-opentelemetry" - name: Test pure_eval pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pure_eval" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pure_eval" - name: Test trytond pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-trytond" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-trytond" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Miscellaneous tests passed needs: test-miscellaneous-pinned diff --git a/.github/workflows/test-integrations-networking.yml b/.github/workflows/test-integrations-networking.yml index e5c26cc2a3..ac36574425 100644 --- a/.github/workflows/test-integrations-networking.yml +++ b/.github/workflows/test-integrations-networking.yml @@ -45,27 +45,35 @@ jobs: - name: Test gevent latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-gevent-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-gevent-latest" - name: Test grpc latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-grpc-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-grpc-latest" - name: Test httpx latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-httpx-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-httpx-latest" - name: Test requests latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-requests-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-requests-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-networking-pinned: name: Networking (pinned) timeout-minutes: 30 @@ -93,27 +101,35 @@ jobs: - name: Test gevent pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gevent" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-gevent" - name: Test grpc pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-grpc" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-grpc" - name: Test httpx pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-httpx" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-httpx" - name: Test requests pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-requests" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-requests" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Networking tests passed needs: test-networking-pinned diff --git a/.github/workflows/test-integrations-web-frameworks-1.yml b/.github/workflows/test-integrations-web-frameworks-1.yml index 00634b920d..743a97cfa0 100644 --- a/.github/workflows/test-integrations-web-frameworks-1.yml +++ b/.github/workflows/test-integrations-web-frameworks-1.yml @@ -63,27 +63,35 @@ jobs: - name: Test django latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-django-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-django-latest" - name: Test flask latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-flask-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-flask-latest" - name: Test starlette latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-starlette-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-starlette-latest" - name: Test fastapi latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-fastapi-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-fastapi-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-web_frameworks_1-pinned: name: Web Frameworks 1 (pinned) timeout-minutes: 30 @@ -129,27 +137,35 @@ jobs: - name: Test django pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-django" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-django" - name: Test flask pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-flask" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-flask" - name: Test starlette pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-starlette" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-starlette" - name: Test fastapi pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-fastapi" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-fastapi" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Web Frameworks 1 tests passed needs: test-web_frameworks_1-pinned diff --git a/.github/workflows/test-integrations-web-frameworks-2.yml b/.github/workflows/test-integrations-web-frameworks-2.yml index d6c593e2c7..09d179271a 100644 --- a/.github/workflows/test-integrations-web-frameworks-2.yml +++ b/.github/workflows/test-integrations-web-frameworks-2.yml @@ -45,47 +45,55 @@ jobs: - name: Test aiohttp latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-aiohttp-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-aiohttp-latest" - name: Test asgi latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-asgi-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-asgi-latest" - name: Test bottle latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-bottle-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-bottle-latest" - name: Test falcon latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-falcon-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-falcon-latest" - name: Test pyramid latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-pyramid-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-pyramid-latest" - name: Test quart latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-quart-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-quart-latest" - name: Test sanic latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-sanic-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-sanic-latest" - name: Test starlite latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-starlite-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-starlite-latest" - name: Test tornado latest run: | set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-tornado-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "py${{ matrix.python-version }}-tornado-latest" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} test-web_frameworks_2-pinned: name: Web Frameworks 2 (pinned) timeout-minutes: 30 @@ -113,47 +121,55 @@ jobs: - name: Test aiohttp pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-aiohttp" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-aiohttp" - name: Test asgi pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-asgi" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-asgi" - name: Test bottle pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-bottle" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-bottle" - name: Test falcon pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-falcon" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-falcon" - name: Test pyramid pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pyramid" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-pyramid" - name: Test quart pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-quart" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-quart" - name: Test sanic pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-sanic" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-sanic" - name: Test starlite pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-starlite" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-starlite" - name: Test tornado pinned run: | set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-tornado" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-tornado" - name: Generate coverage XML + if: ${{ !cancelled() }} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: ${{ !cancelled() }} + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml + - name: Upload test results to Codecov + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} check_required_tests: name: All Web Frameworks 2 tests passed needs: test-web_frameworks_2-pinned diff --git a/.gitignore b/.gitignore index 9dcdf030d3..cfd8070197 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.pid .python-version .coverage* +.junitxml* .DS_Store .tox pip-log.txt diff --git a/codecov.yml b/codecov.yml index 6e4467b675..086157690e 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,4 +1,3 @@ -comment: false coverage: status: project: @@ -6,8 +5,23 @@ coverage: target: auto # auto compares coverage to the previous base commit threshold: 10% # this allows a 10% drop from the previous base commit coverage informational: true + ignore: - "tests" - "sentry_sdk/_types.py" + +# Read more here: https://docs.codecov.com/docs/pull-request-comments +comment: + after_n_builds: 99 + layout: 'diff, files' + # Update, if comment exists. Otherwise post new. + behavior: default + # Comments will only post when coverage changes. Furthermore, if a comment + # already exists, and a newer commit results in no coverage change for the + # entire pull, the comment will be deleted. + require_changes: true + require_base: true # must have a base report to post + require_head: true # must have a head report to post + github_checks: annotations: false \ No newline at end of file diff --git a/pytest.ini b/pytest.ini index f736c30496..c3f7a6b1e8 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,14 +1,11 @@ [pytest] -DJANGO_SETTINGS_MODULE = tests.integrations.django.myapp.settings -addopts = --tb=short -markers = - tests_internal_exceptions: Handle internal exceptions just as the SDK does, to test it. (Otherwise internal exceptions are recorded and reraised.) - only: A temporary marker, to make pytest only run the tests with the mark, similar to jests `it.only`. To use, run `pytest -v -m only`. +addopts = -vvv -rfEs -s --durations=5 --cov=tests --cov=sentry_sdk --cov-branch --cov-report= --tb=short --junitxml=.junitxml-{envname} asyncio_mode = strict +markers = + tests_internal_exceptions: Handle internal exceptions just as the SDK does, to test it. (Otherwise internal exceptions are recorded and reraised.) [pytest-watch] -; Enable this to drop into pdb on errors -; pdb = True - verbose = True nobeep = True +; Enable this to drop into pdb on errors +; pdb = True diff --git a/scripts/split-tox-gh-actions/templates/test_group.jinja b/scripts/split-tox-gh-actions/templates/test_group.jinja index 823a3b9b01..dcf3a3734b 100644 --- a/scripts/split-tox-gh-actions/templates/test_group.jinja +++ b/scripts/split-tox-gh-actions/templates/test_group.jinja @@ -71,18 +71,27 @@ run: | set -x # print commands that are executed {% if category == "pinned" %} - ./scripts/runtox.sh --exclude-latest "{% raw %}py${{ matrix.python-version }}{% endraw %}-{{ framework }}" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh --exclude-latest "{% raw %}py${{ matrix.python-version }}{% endraw %}-{{ framework }}" {% elif category == "latest" %} - ./scripts/runtox.sh "{% raw %}py${{ matrix.python-version }}{% endraw %}-{{ framework }}-latest" --cov=tests --cov=sentry_sdk --cov-report= --cov-branch + ./scripts/runtox.sh "{% raw %}py${{ matrix.python-version }}{% endraw %}-{{ framework }}-latest" {% endif %} {% endfor %} - name: Generate coverage XML + if: {% raw %}${{ !cancelled() }}{% endraw %} run: | coverage combine .coverage* coverage xml -i - - uses: codecov/codecov-action@v4 + - name: Upload coverage to Codecov + if: {% raw %}${{ !cancelled() }}{% endraw %} + uses: codecov/codecov-action@v4.5.0 with: token: {% raw %}${{ secrets.CODECOV_TOKEN }}{% endraw %} files: coverage.xml + + - name: Upload test results to Codecov + if: {% raw %}${{ !cancelled() }}{% endraw %} + uses: codecov/test-results-action@v1 + with: + token: {% raw %}${{ secrets.CODECOV_TOKEN }}{% endraw %} \ No newline at end of file diff --git a/tox.ini b/tox.ini index f742130fef..1572209f2b 100644 --- a/tox.ini +++ b/tox.ini @@ -635,6 +635,9 @@ deps = setenv = PYTHONDONTWRITEBYTECODE=1 OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES + COVERAGE_FILE=.coverage-{envname} + django: DJANGO_SETTINGS_MODULE=tests.integrations.django.myapp.settings + common: TESTPATH=tests gevent: TESTPATH=tests aiohttp: TESTPATH=tests/integrations/aiohttp @@ -685,7 +688,6 @@ setenv = trytond: TESTPATH=tests/integrations/trytond socket: TESTPATH=tests/integrations/socket - COVERAGE_FILE=.coverage-{envname} passenv = SENTRY_PYTHON_TEST_AWS_ACCESS_KEY_ID SENTRY_PYTHON_TEST_AWS_SECRET_ACCESS_KEY @@ -693,7 +695,9 @@ passenv = SENTRY_PYTHON_TEST_POSTGRES_USER SENTRY_PYTHON_TEST_POSTGRES_PASSWORD SENTRY_PYTHON_TEST_POSTGRES_NAME + usedevelop = True + extras = bottle: bottle falcon: falcon @@ -722,10 +726,10 @@ commands = ; https://github.com/pallets/flask/issues/4455 {py3.7,py3.8,py3.9,py3.10,py3.11}-flask-v{1}: pip install "itsdangerous>=0.24,<2.0" "markupsafe<2.0.0" "jinja2<3.1.1" - ; Running `py.test` as an executable suffers from an import error + ; Running `pytest` as an executable suffers from an import error ; when loading tests in scenarios. In particular, django fails to ; load the settings from the test module. - python -m pytest -rfEs -s --durations=5 -vvv {env:TESTPATH} {posargs} + python -m pytest {env:TESTPATH} {posargs} [testenv:linters] commands =