# Python unit tests name: Python-Unit on: push: branches: - "master" - "[0-9].[0-9]" paths: - "superset/**" - "requirements/**" - "tests/unit_tests/**" - "scripts/**" pull_request: types: [synchronize, opened, reopened, ready_for_review] paths: - "superset/**" - "requirements/**" - "tests/unit_tests/**" - "scripts/**" # cancel previous workflow jobs for PRs concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} cancel-in-progress: true jobs: unit-tests: runs-on: ubuntu-20.04 strategy: matrix: python-version: ["3.9", "3.10"] env: PYTHONPATH: ${{ github.workspace }} steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v4 with: persist-credentials: false submodules: recursive - name: Check if python changes are present id: check env: GITHUB_REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} continue-on-error: true run: ./scripts/ci_check_no_file_changes.sh python - name: Setup Python uses: ./.github/actions/setup-backend/ if: steps.check.outcome == 'failure' with: python-version: ${{ matrix.python-version }} - name: Python unit tests if: steps.check.outcome == 'failure' env: SUPERSET_TESTENV: true SUPERSET_SECRET_KEY: not-a-secret run: | pytest --durations-min=0.5 --cov-report= --cov=superset ./tests/common ./tests/unit_tests --cache-clear - name: Upload code coverage if: steps.check.outcome == 'failure' run: | bash .github/workflows/codecov.sh -c -F python -F unit