diff --git a/.github/workflows/pythonapp.yml b/.github/workflows/pythonapp.yml index ba673dc..2c0e768 100644 --- a/.github/workflows/pythonapp.yml +++ b/.github/workflows/pythonapp.yml @@ -6,12 +6,11 @@ on: jobs: build: - runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-14] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.10', '3.11', '3.12', '3.13-dev'] fail-fast: false steps: - uses: actions/checkout@v4 @@ -54,3 +53,48 @@ jobs: run: | python vdb/cli.py --search "pkg:maven/org.springframework/spring-core@6.0.13" python vdb/cli.py --search "pkg:maven/org.hibernate.orm/hibernate-core@6.2.9.Final" + + test_nogil: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: deadsnakes/action@v3.2.0 + with: + python-version: '3.13' + nogil: true + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.x' + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install ".[dev]" + - name: Lint with flake8 + run: | + flake8 . --count --show-source --exit-zero --statistics + - name: Test with pytest + run: | + pytest --cov=vdb test + env: + PYTHONPATH: . + TEST_VDB_HOME: vdb_data + - name: Generate SBOM with cdxgen + run: | + npm install -g @cyclonedx/cdxgen + cdxgen -t python -o bom.json . -p --profile research + pip install ".[all]" + python vdb/cli.py --download-image + python vdb/cli.py --bom bom.json + - name: CLI tests + run: | + python vdb/cli.py --search "pkg:maven/org.springframework/spring-core@6.0.13" + python vdb/cli.py --search "pkg:maven/org.hibernate.orm/hibernate-core@6.2.9.Final" diff --git a/pyproject.toml b/pyproject.toml index 65d1dab..6f8f2aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,7 @@ classifiers = [ "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.10",