name: Lint on: pull_request: paths: - '**' - '!mkdocs.yml' - '!docs/**' - '!*.md' jobs: lint: strategy: fail-fast: false matrix: os: [ubuntu-24.04] runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Cache for pip uses: actions/cache@v3 with: path: ~/.cache/pip key: ${{ matrix.os }}-cache-pip - name: Install latest uv uses: astral-sh/setup-uv@v6 with: version: "latest" - name: Install dependencies run: | sudo apt install -y shfmt curl uv sync --group lint --group dev - name: Run linters run: | git diff-index --quiet HEAD -- pwndbg tests ./lint.sh - name: Run mypy uses: tsuyoshicho/action-mypy@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} # Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review]. reporter: github-pr-check # Change reporter level if you need. # GitHub Status Check won't become failure with warning. level: error # Change the current directory to run mypy command. # mypy command reads setup.cfg or other settings file in this path. execute_command: uv run --group dev --group lint --group tests --extra gdb --extra lldb mypy install_types: false target: pwndbg pwndbginit tests/host filter_mode: nofilter fail_on_error: true