name: "Perform Static Analysis" on: pull_request: # will cancel previous workflows triggered by the same event and for the same ref for PRs or same SHA otherwise concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ contains(github.event_name, 'pull_request') && github.event.pull_request.head.ref || github.sha }} cancel-in-progress: true jobs: static: name: Static Analysis - 3.11 runs-on: ubuntu-latest steps: - name: Check out Repo uses: actions/checkout@v4 with: persist-credentials: false - name: Set up Python 3.11 uses: actions/setup-python@v5 id: setup-python with: python-version: "3.11" - name: Install Poetry uses: snok/install-poetry@v1 with: version: 1.4.2 virtualenvs-create: true virtualenvs-in-project: true installer-parallel: true - name: Load cached venv id: cached-poetry-dependencies uses: actions/cache@v4 with: path: .venv key: static-venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - name: Install python dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' run: poetry install --sync --no-interaction --without dev - name: Run analysis run: | source .venv/bin/activate ruff format . ruff check . mypy