-
Notifications
You must be signed in to change notification settings - Fork 1
70 lines (64 loc) · 2.91 KB
/
Copy pathci.yml
File metadata and controls
70 lines (64 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
name: CI
on:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
headless:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python: ['3.11', '3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: ${{ matrix.python }}
- run: python -m pip install pytest build twine -e packages/pydesktools-sdk -e packages/pydesktools-runtime -e plugins/json-tools
- run: python -m pytest tests/test_json.py tests/test_platforms.py
- run: python -m pytest tests/test_runtime.py -k 'headless_import or protocol_rejects'
- run: python -m build packages/pydesktools-sdk && python -m build packages/pydesktools-runtime && python -m build plugins/json-tools
- run: python -m twine check packages/*/dist/* plugins/*/dist/*
platform-contracts:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
python: '3.14.7'
- os: ubuntu-22.04
python: '3.13'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: ${{ matrix.python }}
- run: python -m pip install pytest -e packages/pydesktools-sdk -e packages/pydesktools-runtime
- run: python -m pytest tests/test_platforms.py
- if: runner.os == 'Windows'
run: python -c "import platform, tkinter; print(platform.python_version(), platform.machine(), 'Tk', tkinter.TkVersion); assert platform.machine() == 'AMD64'; assert tkinter.TkVersion >= 9"
desktop-macos:
runs-on: macos-14
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
repository: openHacking/PyDeskUI
ref: ac199c4f5ab0c5320818bcd5f10494395c5cd1b8
path: vendor/PyDeskUI
- run: brew install python@3.13 python-tk@3.13
- run: |
"$(brew --prefix python@3.13)/bin/python3.13" -m venv .venv
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"
- run: python -m pip install -e vendor/PyDeskUI -e packages/pydesktools-sdk -e packages/pydesktools-runtime -e plugins/json-tools -e plugins/image-compressor -e '.[dev]'
- run: python scripts/fetch_runtime.py --target macos-arm64 --output build/plugin-runtime/macos-arm64
- run: python scripts/build_bundles.py --target macos-arm64 --runtime-source build/plugin-runtime/macos-arm64/python
- run: ruff check src packages plugins scripts tests
- run: mypy
- run: python -m pytest
- run: python -m build && python -m twine check dist/*.whl dist/*.tar.gz