From 48b1c1a3f1b80b144a65014385adfda2971fa888 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Sat, 5 Aug 2023 12:39:42 +0200 Subject: [PATCH] Create pytest output artifact [ci] --- .github/workflows/ci.yaml | 41 +++++++++++++++++++++++++++++++++++---- .gitignore | 1 + 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 31a158c1ffd163..6d41c4e1e7faf7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -734,9 +734,12 @@ jobs: - name: Run pytest (fully) if: needs.info.outputs.test_full_suite == 'true' timeout-minutes: 60 + id: pytest-full run: | . venv/bin/activate python --version + set -o pipefail + python3 -X dev -m pytest \ -qq \ --timeout=9 \ @@ -749,14 +752,17 @@ jobs: --cov-report=xml \ -o console_output_style=count \ -p no:sugar \ - tests + tests \ + 2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt - name: Run pytest (partially) if: needs.info.outputs.test_full_suite == 'false' timeout-minutes: 10 + id: pytest-partial shell: bash run: | . venv/bin/activate python --version + set -o pipefail if [[ ! -f "tests/components/${{ matrix.group }}/__init__.py" ]]; then echo "::error:: missing file tests/components/${{ matrix.group }}/__init__.py" @@ -774,7 +780,14 @@ jobs: --durations=0 \ --durations-min=1 \ -p no:sugar \ - tests/components/${{ matrix.group }} + tests/components/${{ matrix.group }} \ + 2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt + - name: Upload pytest output + if: success() || failure() && (steps.pytest-full.conclusion == 'failure' || steps.pytest-partial.conclusion == 'failure') + uses: actions/upload-artifact@v3.1.2 + with: + name: pytest-${{ github.run_number }} + path: pytest-*.txt - name: Upload coverage artifact uses: actions/upload-artifact@v3.1.2 with: @@ -862,10 +875,13 @@ jobs: python3 -m script.translations develop --all - name: Run pytest (partially) timeout-minutes: 20 + id: pytest-partial shell: bash run: | . venv/bin/activate python --version + set -o pipefail + mariadb=$(echo "${{ matrix.mariadb-group }}" | sed "s/:/-/g") python3 -X dev -m pytest \ -qq \ @@ -881,7 +897,14 @@ jobs: tests/components/history \ tests/components/logbook \ tests/components/recorder \ - tests/components/sensor + tests/components/sensor \ + 2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt + - name: Upload pytest output + if: success() || failure() && steps.pytest-partial.conclusion == 'failure' + uses: actions/upload-artifact@v3.1.2 + with: + name: pytest-${{ github.run_number }} + path: pytest-*.txt - name: Upload coverage artifact uses: actions/upload-artifact@v3.1.2 with: @@ -969,10 +992,13 @@ jobs: python3 -m script.translations develop --all - name: Run pytest (partially) timeout-minutes: 20 + id: pytest-partial shell: bash run: | . venv/bin/activate python --version + set -o pipefail + postgresql=$(echo "${{ matrix.postgresql-group }}" | sed "s/:/-/g") python3 -X dev -m pytest \ -qq \ @@ -989,7 +1015,14 @@ jobs: tests/components/history \ tests/components/logbook \ tests/components/recorder \ - tests/components/sensor + tests/components/sensor \ + 2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt + - name: Upload pytest output + if: success() || failure() && steps.pytest-partial.conclusion == 'failure' + uses: actions/upload-artifact@v3.1.2 + with: + name: pytest-${{ github.run_number }} + path: pytest-*.txt - name: Upload coverage artifact uses: actions/upload-artifact@v3.1.0 with: diff --git a/.gitignore b/.gitignore index 2f3c3e103015ef..ff20c088eb2a53 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ htmlcov/ test-reports/ test-results.xml test-output.xml +pytest-*.txt # Translations *.mo