on: push: branches: [ master ] pull_request: branches: [ master ] permissions: contents: read jobs: build: runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: matrix: include: - os: ubuntu-latest python-version: "pypy-2.7" - os: macos-latest python-version: "3.8" - os: windows-latest python-version: "3.14" steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 1 persist-credentials: false - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Python sanity run: python -VV - name: Basic import test run: python -c "import sqlmap; import sqlmapapi" - name: Unit tests # -B: do not write .pyc files. On Python 2 / PyPy a cached .pyc makes a module's __file__ # point at the .pyc, which would make the later --smoke getFileType(__file__) doctest see # 'binary' instead of 'text'. Keeping this step byte-compile-free leaves --smoke clean. run: python -B -m unittest discover -s tests -p "test_*.py" - name: Smoke test run: python sqlmap.py --smoke-test - name: Vuln test run: python sqlmap.py --vuln-test - name: API test run: python sqlmap.py --api-test