# Python unit tests name: Python-Unit on: push: branches: - 'master' paths: - "superset/**" pull_request: types: [synchronize, opened, reopened, ready_for_review] paths: - "superset/**" # 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@v3 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 if: steps.check.outcome == 'failure' uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'requirements/testing.txt' # TODO: separated requirements.txt file just for unit tests - name: Install dependencies if: steps.check.outcome == 'failure' uses: ./.github/actions/cached-dependencies with: run: | apt-get-install pip-upgrade pip install wheel pip install -r requirements/testing.txt mkdir ${{ github.workspace }}/.temp - name: Python unit tests if: steps.check.outcome == 'failure' env: SUPERSET_TESTENV: true 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