Skip to content

Optimize serializing speed #155

Optimize serializing speed

Optimize serializing speed #155

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