mirror of
https://github.com/mii443/tokenizers.git
synced 2025-08-22 16:25:30 +00:00
* CD backports follow huggingface/safetensors#317 * fix node bindings? `cargo check` doesnt work on my local configuration from `tokenizers/bindings/node/native` i don't think it will be a problem but i have difficulty telling * backport #315 * safetensors#317 back ports
225 lines
6.5 KiB
YAML
225 lines
6.5 KiB
YAML
name: Python Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- python-v*
|
|
|
|
env:
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_DEFAULT_REGION: us-east-1
|
|
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN_DIST }}
|
|
DIST_DIR: ${{ github.sha }}
|
|
|
|
jobs:
|
|
|
|
create_wheels_manylinux:
|
|
runs-on: ubuntu-latest
|
|
name: Create wheels for manylinux2014
|
|
container: quay.io/pypa/manylinux2014_x86_64
|
|
steps:
|
|
# v1 is required when using manylinux2010
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: yum install -y openssl-devel
|
|
|
|
- name: Build and audit wheels
|
|
working-directory: ./bindings/python
|
|
run: sh build-wheels.sh
|
|
|
|
create_wheels_windows_32bit:
|
|
name: Create wheels for windows 32-bit
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
python: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable-i686-pc-windows-msvc
|
|
override: true
|
|
|
|
- name: Override toolchain
|
|
shell: bash
|
|
working-directory: ./bindings/python
|
|
run: echo "stable-i686-pc-windows-msvc" > rust-toolchain
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
architecture: x86
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
# On old versions of python there is an old version of setuptools already installed
|
|
pip install setuptools wheel setuptools-rust==0.11.3 --ignore-installed --force-reinstall
|
|
|
|
- name: Build wheel
|
|
working-directory: ./bindings/python
|
|
run: python setup.py bdist_wheel
|
|
|
|
- name: Upload wheels
|
|
shell: bash
|
|
run: |
|
|
pip install awscli
|
|
aws s3 sync --exact-timestamps ./bindings/python/dist "s3://tokenizers-releases/python/$DIST_DIR"
|
|
|
|
|
|
create_wheels_others_64bit:
|
|
name: Other OSes
|
|
env:
|
|
MACOSX_DEPLOYMENT_TARGET: 10.11
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [windows-latest, macos-latest]
|
|
python: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
architecture: x64
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
# On old versions of python there is an old version of setuptools already installed
|
|
pip install setuptools wheel setuptools-rust==0.11.3 --ignore-installed --force-reinstall
|
|
|
|
- name: Build wheel
|
|
working-directory: ./bindings/python
|
|
run: python setup.py bdist_wheel
|
|
|
|
- name: Rename wheels
|
|
shell: bash
|
|
working-directory: ./bindings/python/dist
|
|
run: for file in *.whl ; do mv $file ${file//macosx_10_1[0-9]/macosx_10_11} || true; done
|
|
|
|
- name: Upload wheels
|
|
shell: bash
|
|
run: |
|
|
pip install awscli
|
|
aws s3 sync --exact-timestamps ./bindings/python/dist "s3://tokenizers-releases/python/$DIST_DIR"
|
|
|
|
create_wheels_macos_13:
|
|
name: MacOS 13
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-13]
|
|
python: ["3.7", "3.8", "3.9", "3.10", "3.11"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
architecture: x64
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
# On old versions of python there is an old version of setuptools already installed
|
|
pip install setuptools wheel setuptools-rust==0.11.3 --ignore-installed --force-reinstall
|
|
- name: Build wheel
|
|
working-directory: ./bindings/python
|
|
run: python setup.py bdist_wheel
|
|
|
|
- name: Rename wheels
|
|
shell: bash
|
|
working-directory: ./bindings/python/dist
|
|
run: for file in *.whl ; do mv $file ${file//macosx_10_1[0-9]/macosx_10_11} || true; done
|
|
|
|
- name: Upload wheels
|
|
shell: bash
|
|
run: |
|
|
pip install awscli
|
|
aws s3 sync --exact-timestamps ./bindings/python/dist "s3://tokenizers-releases/python/$DIST_DIR"
|
|
|
|
create_wheels_macos_arm64:
|
|
name: Create wheels for MacOS M1
|
|
runs-on: macos-arm64
|
|
strategy:
|
|
matrix:
|
|
python: [ "3.9.13", "3.10.6", "3.11.1"]
|
|
target: ["12.0", "13.0"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install Python
|
|
shell: bash
|
|
run: |
|
|
echo $HOME
|
|
export PYENV_ROOT="$HOME/.pyenv"
|
|
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
|
|
eval "$(pyenv init -)"
|
|
pyenv shell ${{ matrix.python }}
|
|
which pyenv
|
|
which python
|
|
pip install -U setuptools wheel setuptools-rust awscli
|
|
cd ./bindings/python
|
|
MACOSX_DEPLOYMENT_TARGET=${{ matrix.target }} python setup.py bdist_wheel
|
|
cd ../../
|
|
aws s3 sync --exact-timestamps ./bindings/python/dist "s3://tokenizers-releases/python/$DIST_DIR"
|
|
|
|
upload_package:
|
|
name: Upload package to PyPi
|
|
runs-on: ubuntu-latest
|
|
needs: [create_wheels_manylinux, create_wheels_windows_32bit, create_wheels_others_64bit, create_wheels_macos_arm64, create_wheels_macos_13]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v1
|
|
|
|
- name: Retrieve all wheels
|
|
shell: bash
|
|
run: |
|
|
pip install awscli
|
|
aws s3 sync "s3://tokenizers-releases/python/$DIST_DIR" ./bindings/python/dist
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install setuptools wheel setuptools-rust
|
|
|
|
- name: Create source distribution
|
|
working-directory: ./bindings/python
|
|
run: sh build-sdist.sh
|
|
|
|
- name: Upload to PyPi
|
|
working-directory: ./bindings/python
|
|
run: |
|
|
pip install twine
|
|
twine upload dist/* -u __token__ -p "$PYPI_TOKEN"
|