Optimize serializing speed #160
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Pull Request Test | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build_manylinux: | |
name: Build for manylinux | |
runs-on: ubuntu-latest | |
container: | |
image: docker://quay.io/pypa/manylinux2014_x86_64 | |
strategy: | |
max-parallel: 4 | |
matrix: | |
cp: [cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Print Info | |
run: | | |
cat /proc/cpuinfo | |
- name: Install dependencies | |
run: | | |
git clone https://gitlab.com/libeigen/eigen | |
cd eigen | |
git checkout tags/3.4.0 | |
cd .. | |
mv eigen include | |
git clone https://github.com/bab2min/EigenRand | |
cd EigenRand | |
git checkout tags/v0.4.1 | |
cd .. | |
mv EigenRand/EigenRand include/ | |
git clone https://github.com/mapbox/variant | |
cd variant | |
git checkout tags/v1.1.3 | |
cd .. | |
mv variant/include/mapbox include/ | |
- name: Build | |
run: | | |
/opt/python/${{ matrix.cp }}/bin/python -m pip install numpy==`/opt/python/${{ matrix.cp }}/bin/python .github/workflows/numpy_version.py` | |
/opt/python/${{ matrix.cp }}/bin/python setup.py build install | |
- run: tar -zcvf build.tgz build | |
- name: Archive binary | |
uses: actions/upload-artifact@v1 | |
with: | |
name: Linux Binary ${{ matrix.cp }} | |
path: build.tgz | |
- name: Test | |
continue-on-error: True | |
run: | | |
/opt/python/${{ matrix.cp }}/bin/python -m pip install pytest nltk | |
/opt/python/${{ matrix.cp }}/bin/python -m nltk.downloader stopwords | |
/opt/python/${{ matrix.cp }}/bin/python -m pytest --verbose -s test/unit_test.py | |
build_linux_arm64: | |
name: Arm64-Centos7 | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 4 | |
matrix: | |
cp: [cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
lfs: true | |
- uses: bab2min/run-on-arch-action@use-custom-image | |
id: runcmd | |
with: | |
image: quay.io/pypa/manylinux2014_aarch64 | |
githubToken: ${{ github.token }} | |
setup: | | |
mkdir -p "${PWD}/artifacts" | |
dockerRunArgs: | | |
--volume "${PWD}/artifacts:/artifacts" | |
run: | | |
git clone https://gitlab.com/libeigen/eigen | |
cd eigen | |
git checkout tags/3.4.0 | |
cd .. | |
mv eigen include | |
git clone https://github.com/bab2min/EigenRand | |
cd EigenRand | |
git checkout tags/v0.4.1 | |
cd .. | |
mv EigenRand/EigenRand include/ | |
git clone https://github.com/mapbox/variant | |
cd variant | |
git checkout tags/v1.1.3 | |
cd .. | |
mv variant/include/mapbox include/ | |
/opt/python/${{ matrix.cp }}/bin/python -m pip install numpy==`/opt/python/${{ matrix.cp }}/bin/python .github/workflows/numpy_version.py` | |
/opt/python/${{ matrix.cp }}/bin/python setup.py build install | |
tar -zcvf /artifacts/build.tgz build | |
- name: Archive binaries | |
uses: actions/upload-artifact@v1 | |
with: | |
name: Artifacts ${{ matrix.cp }} | |
path: artifacts/build.tgz | |
build_macos_11: | |
name: Build for macOS 11 | |
runs-on: macOS-11 | |
strategy: | |
max-parallel: 4 | |
matrix: | |
python-version: [3.8, 3.9, "3.10", 3.11] | |
cpu-arch: ["x86_64", "arm64"] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz | |
tar -zxvf eigen-3.4.0.tar.gz | |
rm eigen-3.4.0.tar.gz | |
mv eigen-* include | |
wget https://github.com/bab2min/EigenRand/archive/v0.4.1.tar.gz | |
tar -zxvf v0.4.1.tar.gz | |
mv EigenRand-0.4.1/EigenRand include/ | |
wget https://github.com/mapbox/variant/archive/v1.1.3.tar.gz | |
tar -zxvf v1.1.3.tar.gz | |
mv variant-1.1.3/include/mapbox include/ | |
- name: Build | |
run: | | |
export MACOSX_DEPLOYMENT_TARGET=11.7 | |
python -m pip install numpy==`python .github/workflows/numpy_version.py` | |
TOMOTOPY_CPU_ARCH=${{ matrix.cpu-arch }} python setup.py build install | |
- name: Archive binary | |
uses: actions/upload-artifact@v2 | |
with: | |
name: macOS Binary ${{ matrix.python-version }} ${{ matrix.cpu-arch }} | |
path: | | |
build/* | |
- name: Test | |
if: ${{ matrix.cpu-arch == 'x86_64' }} | |
run: | | |
python -m pip install pytest nltk | |
python -m nltk.downloader stopwords | |
python -m pytest --verbose -s test/unit_test.py | |
build_windows: | |
name: Build for Windows | |
runs-on: windows-latest | |
strategy: | |
max-parallel: 4 | |
matrix: | |
python-version: [3.9, "3.10", 3.11, 3.12] | |
architecture: [x86, x64] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: ${{ matrix.architecture }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools | |
python -m pip install -r requirements.txt | |
Invoke-WebRequest -OutFile eigen-3.4.0.tar.gz https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz | |
tar -zxvf eigen-3.4.0.tar.gz | |
rm eigen-3.4.0.tar.gz | |
mv eigen-* include | |
Invoke-WebRequest -OutFile v0.4.1.tar.gz https://github.com/bab2min/EigenRand/archive/v0.4.1.tar.gz | |
tar -zxvf v0.4.1.tar.gz | |
mv EigenRand-0.4.1/EigenRand include/ | |
Invoke-WebRequest -OutFile v1.1.3.tar.gz https://github.com/mapbox/variant/archive/v1.1.3.tar.gz | |
tar -zxvf v1.1.3.tar.gz | |
mv variant-1.1.3/include/mapbox include/ | |
- name: Build | |
run: | | |
python -m pip install numpy==$(python .github/workflows/numpy_version.py) | |
python setup.py build install | |
- name: Archive binary | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pyd ${{ matrix.python-version }} ${{ matrix.architecture }} | |
path: | | |
build/**/*.pyd | |
build/**/*.pdb | |
- name: Test | |
run: | | |
python -m pip install pytest nltk | |
python -m nltk.downloader stopwords | |
python -m pytest --verbose -s test/unit_test.py |