From 41172635a72cd540169b8d3f9867c1f8fb32fee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Ram=C3=ADrez?= Date: Sat, 5 Nov 2022 00:08:30 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20Move=20from=20pytest-cov=20to=20?= =?UTF-8?q?coverage=20and=20Codecov=20to=20Smokeshow=20(#483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coveragerc | 1 + .github/workflows/smokeshow.yml | 35 ++++++++++++++++++++++++++++ .github/workflows/test.yml | 41 ++++++++++++++++++++++++++++++--- README.md | 5 ++-- docs/index.md | 5 ++-- pyproject.toml | 3 +-- scripts/test-cov-html.sh | 5 +++- scripts/test.sh | 2 +- 8 files changed, 84 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/smokeshow.yml diff --git a/.coveragerc b/.coveragerc index 18cdff194..54df9e71c 100644 --- a/.coveragerc +++ b/.coveragerc @@ -6,3 +6,4 @@ source = docs_src parallel = True +context = '${CONTEXT}' diff --git a/.github/workflows/smokeshow.yml b/.github/workflows/smokeshow.yml new file mode 100644 index 000000000..606633a99 --- /dev/null +++ b/.github/workflows/smokeshow.yml @@ -0,0 +1,35 @@ +name: Smokeshow + +on: + workflow_run: + workflows: [Test] + types: [completed] + +permissions: + statuses: write + +jobs: + smokeshow: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + + steps: + - uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - run: pip install smokeshow + + - uses: dawidd6/action-download-artifact@v2 + with: + workflow: test.yml + commit: ${{ github.event.workflow_run.head_sha }} + + - run: smokeshow upload coverage-html + env: + SMOKESHOW_GITHUB_STATUS_DESCRIPTION: Coverage {coverage-percentage} + SMOKESHOW_GITHUB_COVERAGE_THRESHOLD: 100 + SMOKESHOW_GITHUB_CONTEXT: coverage + SMOKESHOW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SMOKESHOW_GITHUB_PR_HEAD_SHA: ${{ github.event.workflow_run.head_sha }} + SMOKESHOW_AUTH_KEY: ${{ secrets.SMOKESHOW_AUTH_KEY }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cbd2646dd..85ff7e8dc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,11 +21,46 @@ jobs: - name: Install Flit run: pip install flit - name: Install Dependencies - # run: flit install --deps=develop --symlink run: python -m pip install ".[test]" - name: Lint run: bash scripts/lint.sh + - run: mkdir coverage - name: Test run: bash scripts/test.sh - - name: Upload coverage - uses: codecov/codecov-action@v3 + env: + COVERAGE_FILE: coverage/.coverage.${{ runner.os }}-py${{ matrix.python-version }} + CONTEXT: ${{ runner.os }}-py${{ matrix.python-version }} + - name: Store coverage files + uses: actions/upload-artifact@v3 + with: + name: coverage + path: coverage + coverage-combine: + needs: [test] + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: '3.8' + + - name: Get coverage files + uses: actions/download-artifact@v3 + with: + name: coverage + path: coverage + + - run: pip install coverage[toml] + + - run: ls -la coverage + - run: coverage combine coverage + - run: coverage report + - run: coverage html --show-contexts --title "Coverage for ${{ github.sha }}" + + - name: Store coverage HTML + uses: actions/upload-artifact@v3 + with: + name: coverage-html + path: htmlcov diff --git a/README.md b/README.md index f9dd52522..0d04d7b04 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,8 @@ Publish - - Coverage - + + Coverage Package version diff --git a/docs/index.md b/docs/index.md index f9dd52522..0d04d7b04 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,9 +11,8 @@ Publish - - Coverage - + + Coverage Package version diff --git a/pyproject.toml b/pyproject.toml index d4f6c015b..7a76b21b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,12 +48,11 @@ repository = "https://github.com/alexreg/typer" [project.optional-dependencies] test = [ "black ~= 22.3.0", - "coverage ~= 5.2", + "coverage ~= 6.0.0", "docstring_parser ~= 0.15", "isort ~= 5.10.1", "mypy ~= 0.950", "pytest ~= 7.1.2", - "pytest-cov ~= 3.0.0", "pytest-sugar ~= 0.9.4", "pytest-xdist ~= 2.1.0", "shellingham ~= 1.4.0", diff --git a/scripts/test-cov-html.sh b/scripts/test-cov-html.sh index 7957277fc..d1bdfced2 100755 --- a/scripts/test-cov-html.sh +++ b/scripts/test-cov-html.sh @@ -3,4 +3,7 @@ set -e set -x -bash scripts/test.sh --cov-report=html ${@} +bash scripts/test.sh ${@} +coverage combine +coverage report --show-missing +coverage html diff --git a/scripts/test.sh b/scripts/test.sh index 77dd74d73..ceba6bf7d 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -5,4 +5,4 @@ set -x bash ./scripts/test-files.sh # Use xdist-pytest --forked to ensure modified sys.path to import relative modules in examples keeps working -pytest --cov=typer --cov=tests --cov=docs_src --cov-report=term-missing --cov-report=xml -o console_output_style=progress --forked --numprocesses=auto ${@} +coverage run -m pytest -o console_output_style=progress --forked --numprocesses=auto ${@}