1010 - main
1111 pull_request :
1212
13+ permissions :
14+ contents : read
15+
1316jobs :
14- # Test using the tool via poetry on different OSes and python versions
17+ # Test using the tool via uv on different OSes and python versions
1518 test-os-python-matrix :
1619 runs-on : ${{ matrix.os }}
1720 strategy :
1821 max-parallel : 10
1922 # do not abort the whole test job if one combination in the matrix fails
2023 fail-fast : false
2124 matrix :
22- python-version : ["3.10", "3.11", "3.12", "3.13"]
25+ python-version : ["3.10", "3.11", "3.12", "3.13", "3.14" ]
2326 os : [ubuntu-22.04]
2427 include :
2528 - python-version : " 3.10"
@@ -29,73 +32,76 @@ jobs:
2932
3033 steps :
3134 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
32- - uses : ./.github/actions/poetrybuild
35+ with :
36+ persist-credentials : false
37+ - uses : ./.github/actions/uvbuild
3338 with :
3439 python : ${{ matrix.python-version }}
35- poetry_args : --only main
40+ uv_args : --no-dev
3641 - name : Execute purl-tools
37- run : poetry run purl-tools --help
42+ run : uv run purl-tools --help
3843
3944 # Test building the package and installing it via pip3
4045 test-build-install :
4146 runs-on : ubuntu-24.04
4247 steps :
4348 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
44- - name : Install poetry
45- run : pipx install poetry
49+ with :
50+ persist-credentials : false
4651 - name : Set up Python
4752 uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
4853 with :
4954 python-version : " 3.14"
50- cache : " poetry"
55+ - name : Install uv
56+ uses : astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
57+ with :
58+ enable-cache : true
5159 - name : Build package
52- run : poetry build
60+ run : uv build
5361 - name : Install package
5462 run : pip3 install dist/purl_tools-*.tar.gz
5563 - name : Run package
5664 run : |
5765 purl-tools --version
5866 purl-tools --help
5967
60- # Formatting
61- pylint :
68+ # Quality checks
69+ ruff :
6270 runs-on : ubuntu-24.04
6371 steps :
6472 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
65- - uses : ./.github/actions/poetrybuild
66- - name : Lint with pylint
67- run : poetry run pylint --disable=fixme purltools/ tests/
68-
69- formatting :
70- runs-on : ubuntu-24.04
71- steps :
72- - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
73- - uses : ./.github/actions/poetrybuild
74- - name : Test formatting with isort and black
75- run : |
76- poetry run isort --check purltools/ tests/
77- poetry run black --check .
73+ with :
74+ persist-credentials : false
75+ - uses : ./.github/actions/uvbuild
76+ - name : Lint with ruff
77+ run : uv run ruff check
7878
79- mypy :
79+ ty :
8080 runs-on : ubuntu-24.04
8181 steps :
8282 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
83- - uses : ./.github/actions/poetrybuild
84- - name : Test typing with mypy
85- run : poetry run mypy
83+ with :
84+ persist-credentials : false
85+ - uses : ./.github/actions/uvbuild
86+ - name : Test typing with ty
87+ run : uv run ty check
8688
8789 pytest :
8890 runs-on : ubuntu-24.04
8991 steps :
9092 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
91- - uses : ./.github/actions/poetrybuild
93+ with :
94+ persist-credentials : false
95+ - uses : ./.github/actions/uvbuild
9296 - name : Test with pytest
93- run : poetry run pytest
97+ run : uv run pytest
9498
9599 # REUSE
96100 reuse :
97101 runs-on : ubuntu-latest
98102 steps :
99103 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
104+ with :
105+ persist-credentials : false
100106 - name : Check REUSE Compliance
101107 uses : fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0
0 commit comments