-
-
Notifications
You must be signed in to change notification settings - Fork 35
136 lines (127 loc) · 4.69 KB
/
python-upload-test.yml
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Python Packages Test
on:
push:
branches: [ pre/v* ]
jobs:
build-wheels:
name: build wheels using cibuildwheel
runs-on: ${{ format('{0}-latest', matrix.os) }}
strategy:
fail-fast: false
matrix:
include:
- os: "ubuntu"
platform: "linux"
arch: "x86_64"
- os: "macos"
arch: "universal2"
- os: "windows"
arch: "AMD64"
env:
build-sdist: ${{ matrix.os == 'ubuntu' && matrix.arch == 'x86_64' }}
steps:
- uses: actions/checkout@v4
- name: setup python for sdist and cibuildwheel
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools setuptools-rust build cibuildwheel packaging
- name: download dictionary for PGO
if: ${{ matrix.os == 'ubuntu' }}
run: bash fetch_dictionary.sh "20220519" "core"
- name: Add aarch64/x86 target for macos
if: ${{ matrix.os == 'macos' }}
run: rustup target add aarch64-apple-darwin x86_64-apple-darwin
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Modify version for TestPyPI upload
run: python ./python/modify_version_for_testpypi.py
- name: build sdist
if: ${{ env.build-sdist == 'true' }}
working-directory: ./python
run: bash build-sdist.sh
- name: cibuildwheel ${{ matrix.platform || matrix.os }}
env:
# most configuration are in python/pyproject.toml
CIBW_PLATFORM: ${{ matrix.platform || matrix.os }}
CIBW_ARCHS: ${{ matrix.arch }}
run: cibuildwheel python/ --output-dir python/dist/
- uses: actions/upload-artifact@v4
with:
name: artifact-${{ matrix.os }}
path: |
./python/dist/*.whl
./python/dist/*.tar.gz
upload-to-testpypi: # run only if all have succeeded
needs: [ build-wheels ]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
pattern: artifact-*
path: dist/
merge-multiple: true
- name: List files to upload
run: ls -R dist/
- name: Publish distribution to Test PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: ${{ secrets.PYPI_TEST_USERNAME }}
password: ${{ secrets.PYPI_TEST_PASSWORD }}
repository_url: https://test.pypi.org/legacy/
verbose: true
install-and-test:
needs: [ upload-to-testpypi ]
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macOS-latest ]
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.13t" ]
exclude:
- os: "windows-latest"
python-version: "3.13t"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: Quansight-Labs/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: python -m pip install --upgrade pip
- name: Show compatible tags
run: python -m pip debug --verbose
- name: Install our module from TestPyPi
run: python -m pip -vvvv install --pre -U -i https://test.pypi.org/simple/ SudachiPy
- name: Install dependencies
run: python -m pip install sudachidict_core
- name: Install dependencies
# tokenizers for py3.13t is not provided yet
if: ${{ matrix.python-version != '3.13t' }}
run: python -m pip install tokenizers
- name: Run test
if: ${{ matrix.python-version != '3.13t' }}
working-directory: ./python
run: python -m unittest
- name: Run test (skip pretokenizer test)
# tokenizers for py3.13t is not provided yet
if: ${{ matrix.python-version == '3.13t' }}
working-directory: ./python
run: ls tests/test_*.py | grep -v pretokenizer | xargs -I{} python -m unittest {}
- name: Check that binary works (C mode)
run: |
sudachipy .github/data/input.txt -o result-c.txt
git diff --color=always --no-index -- result-c.txt .github/data/expected-c.txt
- name: Check that binary works (A mode)
run: |
sudachipy .github/data/input.txt -m A -o result-a.txt
git diff --color=always --no-index -- result-a.txt .github/data/expected-a.txt