From 74b42df60818b8696edda557c9321744a788dbd4 Mon Sep 17 00:00:00 2001 From: epszaw Date: Wed, 1 Jul 2026 18:13:24 +0200 Subject: [PATCH 1/6] setup testops --- .allurerc.mjs | 11 +++++ .github/workflows/build.yaml | 80 +++++++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 .allurerc.mjs diff --git a/.allurerc.mjs b/.allurerc.mjs new file mode 100644 index 00000000..93859932 --- /dev/null +++ b/.allurerc.mjs @@ -0,0 +1,11 @@ +export default { + name: "Allure Python", + output: "./out/allure-report", + plugins: { + testops: { + options: { + launchName: `Allure Python GitHub actions run (${new Date().toISOString()})`, + }, + }, + }, +}; diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8e4d4323..529d9de1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -31,6 +31,8 @@ jobs: runs-on: ubuntu-latest outputs: packages: ${{ steps.filter.outputs.changes }} + matrix: ${{ steps.matrix.outputs.matrix }} + count: ${{ steps.matrix.outputs.count }} steps: - uses: dorny/paths-filter@v3 id: filter @@ -108,6 +110,7 @@ jobs: env: TEST_TMP: /tmp ALLURE_INDENT_OUTPUT: yep + ALLURE_TEST_DUMP_NAME: allure-results-test-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }} steps: - uses: actions/checkout@v4 @@ -116,6 +119,16 @@ jobs: with: python-version: ${{ matrix.python-version }} + - uses: actions/setup-node@v6 + with: + node-version: '20.x' + + - name: Normalize ALLURE_MATRIX_ENV + run: | + value="ubuntu-python-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }}" + value="${value//./_}" + echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" + - name: Install packages run: | pip install ./allure-python-commons \ @@ -127,13 +140,20 @@ jobs: - name: Test allure-pytest working-directory: allure-pytest - run: poe tests + run: npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe tests + + - name: Upload report + uses: actions/upload-artifact@v7 + with: + name: ${{ env.ALLURE_TEST_DUMP_NAME }} + path: ./${{ env.ALLURE_TEST_DUMP_NAME }}.zip + retention-days: 1 test-others: name: Test other packages runs-on: ubuntu-latest needs: [other-changes] - if: ${{ needs.other-changes.outputs.packages != '[]' }} + if: ${{ needs.other-changes.outputs.count != '0' }} strategy: matrix: package: ${{ fromJSON(needs.other-changes.outputs.packages) }} @@ -143,6 +163,7 @@ jobs: env: TEST_TMP: /tmp ALLURE_INDENT_OUTPUT: yep + ALLURE_TEST_DUMP_NAME: allure-results-test-${{ matrix.package }}-python-${{ matrix.python-version }} steps: - uses: actions/checkout@v4 @@ -151,6 +172,16 @@ jobs: with: python-version: ${{ matrix.python-version }} + - uses: actions/setup-node@v6 + with: + node-version: '20.x' + + - name: Normalize ALLURE_MATRIX_ENV + run: | + value="ubuntu-package-${{ matrix.package }}-python-${{ matrix.python-version }}" + value="${value//./_}" + echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" + - name: Install packages run: | pip install ./allure-python-commons \ @@ -162,3 +193,48 @@ jobs: - name: Test ${{ matrix.package }} working-directory: ${{ matrix.package }} run: poe tests + + - name: Upload report + uses: actions/upload-artifact@v7 + with: + name: ${{ env.ALLURE_TEST_DUMP_NAME }} + path: ./${{ env.ALLURE_TEST_DUMP_NAME }}.zip + retention-days: 1 + + report: + needs: [test-pytest, test-others] + name: Build Allure report + runs-on: ubuntu-latest + if: always() + permissions: + contents: read + pull-requests: write + checks: write + env: + ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }} + ALLURE_ENDPOINT: ${{ secrets.ALLURE_ENDPOINT }} + ALLURE_PROJECT_ID: ${{ secrets.ALLURE_PROJECT_ID }} + steps: + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 + with: + node-version: '20.x' + + - name: Download Allure dumps + uses: actions/download-artifact@v8 + continue-on-error: true + with: + pattern: allure-results-* + path: ./ + merge-multiple: true + + - name: Generate Allure report + run: npx -y allure@3 generate --config ./.allurerc.mjs --dump="allure-results-*.zip" --output=./out/allure-report + + - name: Post Allure summary + if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false + uses: allure-framework/allure-action@v0 + with: + report-directory: ./out/allure-report + github-token: ${{ secrets.GITHUB_TOKEN }} From 980c904d046b7dbda59be5f3d1e635ae85e3e308 Mon Sep 17 00:00:00 2001 From: epszaw Date: Thu, 2 Jul 2026 14:08:24 +0200 Subject: [PATCH 2/6] fix dump-related env variables --- .github/workflows/build.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 529d9de1..e56d8437 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -110,7 +110,6 @@ jobs: env: TEST_TMP: /tmp ALLURE_INDENT_OUTPUT: yep - ALLURE_TEST_DUMP_NAME: allure-results-test-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }} steps: - uses: actions/checkout@v4 @@ -128,6 +127,7 @@ jobs: value="ubuntu-python-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }}" value="${value//./_}" echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" + echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV" - name: Install packages run: | @@ -163,7 +163,6 @@ jobs: env: TEST_TMP: /tmp ALLURE_INDENT_OUTPUT: yep - ALLURE_TEST_DUMP_NAME: allure-results-test-${{ matrix.package }}-python-${{ matrix.python-version }} steps: - uses: actions/checkout@v4 @@ -181,6 +180,7 @@ jobs: value="ubuntu-package-${{ matrix.package }}-python-${{ matrix.python-version }}" value="${value//./_}" echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" + echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV" - name: Install packages run: | @@ -192,7 +192,8 @@ jobs: - name: Test ${{ matrix.package }} working-directory: ${{ matrix.package }} - run: poe tests + run: | + npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe tests - name: Upload report uses: actions/upload-artifact@v7 From 87c22ef3ef870c49157e4a002cb3db2aed900d20 Mon Sep 17 00:00:00 2001 From: epszaw Date: Thu, 2 Jul 2026 12:09:38 +0000 Subject: [PATCH 3/6] Update .github/workflows/build.yaml Co-authored-by: Maksim Stepanov <17935127+delatrie@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e56d8437..5f483f8c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -140,7 +140,7 @@ jobs: - name: Test allure-pytest working-directory: allure-pytest - run: npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe tests + run: npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe allure-collect - name: Upload report uses: actions/upload-artifact@v7 From fcb3ce09d84ed316abdc21a8b3b667adf585453f Mon Sep 17 00:00:00 2001 From: epszaw Date: Thu, 2 Jul 2026 14:11:25 +0200 Subject: [PATCH 4/6] use correct test scripts --- .github/workflows/build.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5f483f8c..ad1f4e80 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -140,7 +140,9 @@ jobs: - name: Test allure-pytest working-directory: allure-pytest - run: npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe allure-collect + run: | + npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ + poe tests -p allure_pytest --alluredir allure-results --allure-link-pattern "issue:https://github.com/allure-framework/allure-python/issues/{0}" - name: Upload report uses: actions/upload-artifact@v7 @@ -193,7 +195,8 @@ jobs: - name: Test ${{ matrix.package }} working-directory: ${{ matrix.package }} run: | - npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- poe tests + npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ + poe allure-collect - name: Upload report uses: actions/upload-artifact@v7 From fe6042fe4b99999217cdf947e1c17b45ab4dbb19 Mon Sep 17 00:00:00 2001 From: epszaw Date: Thu, 2 Jul 2026 14:43:37 +0200 Subject: [PATCH 5/6] fix env variables interpolation --- .github/workflows/build.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ad1f4e80..e0ee2192 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -124,10 +124,12 @@ jobs: - name: Normalize ALLURE_MATRIX_ENV run: | - value="ubuntu-python-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }}" + raw_value="ubuntu-python-${{ matrix.python-version }}-pytest-${{ matrix.pytest-version }}" + value="$raw_value" value="${value//./_}" - echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" - echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV" + value="${value//\*/x}" + echo "ALLURE_MATRIX_ENV=${value}" >> "$GITHUB_ENV" + echo "ALLURE_TEST_DUMP_NAME=allure-results-${value}" >> "$GITHUB_ENV" - name: Install packages run: | @@ -179,10 +181,12 @@ jobs: - name: Normalize ALLURE_MATRIX_ENV run: | - value="ubuntu-package-${{ matrix.package }}-python-${{ matrix.python-version }}" + raw_value="ubuntu-package-${{ matrix.package }}-python-${{ matrix.python-version }}" + value="$raw_value" value="${value//./_}" - echo "ALLURE_MATRIX_ENV=${value//\*/x}" >> "$GITHUB_ENV" - echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV" + value="${value//\*/x}" + echo "ALLURE_MATRIX_ENV=${value}" >> "$GITHUB_ENV" + echo "ALLURE_TEST_DUMP_NAME=allure-results-${value}" >> "$GITHUB_ENV" - name: Install packages run: | From d4b71130d9531b27cb39dfd4e2e0f15a2cddfa6b Mon Sep 17 00:00:00 2001 From: epszaw Date: Thu, 2 Jul 2026 14:59:54 +0200 Subject: [PATCH 6/6] add working dir to the dump artifact paths --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e0ee2192..bf58fdab 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -143,14 +143,14 @@ jobs: - name: Test allure-pytest working-directory: allure-pytest run: | - npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ + npx -y allure@3 run --config "../.allurerc.mjs" --rerun 2 --environment "${{ env.ALLURE_MATRIX_ENV }}" --dump "${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ poe tests -p allure_pytest --alluredir allure-results --allure-link-pattern "issue:https://github.com/allure-framework/allure-python/issues/{0}" - name: Upload report uses: actions/upload-artifact@v7 with: name: ${{ env.ALLURE_TEST_DUMP_NAME }} - path: ./${{ env.ALLURE_TEST_DUMP_NAME }}.zip + path: ./allure-pytest/${{ env.ALLURE_TEST_DUMP_NAME }}.zip retention-days: 1 test-others: @@ -199,14 +199,14 @@ jobs: - name: Test ${{ matrix.package }} working-directory: ${{ matrix.package }} run: | - npx -y allure@3 run --config ../.allurerc.mjs --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ + npx -y allure@3 run --config "../.allurerc.mjs" --rerun 2 --environment="${{ env.ALLURE_MATRIX_ENV }}" --dump="${{ env.ALLURE_TEST_DUMP_NAME }}" -- \ poe allure-collect - name: Upload report uses: actions/upload-artifact@v7 with: name: ${{ env.ALLURE_TEST_DUMP_NAME }} - path: ./${{ env.ALLURE_TEST_DUMP_NAME }}.zip + path: ./${{ matrix.package }}/${{ env.ALLURE_TEST_DUMP_NAME }}.zip retention-days: 1 report: