Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Setup testops

Setup testops #766

Workflow file for this run

name: build allure python
on:
pull_request:
branches:
- master
permissions:
contents: read
jobs:
pytest-changes:
name: Collect allure-pytest file changes
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.filter.outputs.allure-pytest }}
steps:
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
allure-pytest:
- allure-pytest/**
- allure-python-commons/**
- allure-python-commons-test/**
- tests/*.py
- tests/allure_pytest/**
- .github/workflows/build.yaml
other-changes:
name: Collect file changes other than allure-pytest
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
with:
filters: |
allure-behave:
- allure-behave/**
- allure-python-commons/**
- allure-python-commons-test/**
- tests/*.py
- tests/allure_behave/**
- .github/workflows/build.yaml
allure-nose2:
- allure-nose2/**
- allure-python-commons/**
- allure-python-commons-test/**
- tests/*.py
- tests/allure_nose2/**
- .github/workflows/build.yaml
allure-pytest-bdd:
- allure-pytest-bdd/**
- allure-python-commons/**
- allure-python-commons-test/**
- tests/*.py
- tests/allure_pytest_bdd/**
- .github/workflows/build.yaml
allure-robotframework:
- allure-robotframework/**
- allure-python-commons/**
- allure-python-commons-test/**
- tests/*.py
- tests/allure_robotframework/**
- .github/workflows/build.yaml
allure-python-commons:
- allure-python-commons/**
- .github/workflows/build.yaml
allure-python-commons-test:
- allure-python-commons-test/**
- .github/workflows/build.yaml
lint:
name: Static check
runs-on: ubuntu-latest
needs: [pytest-changes, other-changes]
if: ${{ needs.pytest-changes.outputs.changed == 'true' || needs.other-changes.outputs.packages != '[]' }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install linting packages
run: pip install -r ./requirements/linting.txt
- name: Linting the codebase
run: poe linter --output-format=github
test-pytest:
name: Test allure-pytest
runs-on: ubuntu-latest
needs: [pytest-changes]
if: ${{ needs.pytest-changes.outputs.changed == 'true' }}
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
pytest-version: ["7.*", "8.*", "9.*"]
exclude:
# pytest 9 supports Python >= 3.10
- python-version: "3.8"
pytest-version: "9.*"
- python-version: "3.9"
pytest-version: "9.*"
env:
TEST_TMP: /tmp
ALLURE_INDENT_OUTPUT: yep
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
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"
echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV"
- name: Install packages
run: |
pip install ./allure-python-commons \
./allure-python-commons-test \
./allure-pytest \
pytest==${{ matrix.pytest-version }} \
-r ./requirements/testing.txt \
-r ./requirements/testing/allure-pytest.txt
- 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
- 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.count != '0' }}
strategy:
matrix:
package: ${{ fromJSON(needs.other-changes.outputs.packages) }}
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
exclude:
- package: allure-pytest
env:
TEST_TMP: /tmp
ALLURE_INDENT_OUTPUT: yep
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
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"
echo "ALLURE_TEST_DUMP_NAME=allure-results-${ALLURE_MATRIX_ENV}" >> "$GITHUB_ENV"
- name: Install packages
run: |
pip install ./allure-python-commons \
./allure-python-commons-test \
./${{ matrix.package }} \
-r ./requirements/testing.txt \
-r ./requirements/testing/${{ matrix.package }}.txt
- 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 allure-collect
- 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 }}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.