Skip to content

Commit

Permalink
Release Workflow: multiple py versions and arm
Browse files Browse the repository at this point in the history
  • Loading branch information
dvmarcilio committed Jul 10, 2024
1 parent 31e2504 commit 3a57776
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 28 deletions.
116 changes: 89 additions & 27 deletions .github/workflows/polyglot_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,99 @@ on:
jobs:
build_ubuntu:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: ${{ matrix.python-version }}
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist
maturin build --sdist -o dist
- name: Pypi Release for ubuntu-latest
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
build_ubuntu_20:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: ${{ matrix.python-version }}
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist
maturin build --sdist -o dist
- name: Pypi Release for ubuntu-latest
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
build_ubuntu_20_arm:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name : Install rustup targets
run: |
sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu
rustup target add aarch64-unknown-linux-gnu
- name: Setup cargo target and linker
run: |
mkdir -p .cargo
touch .cargo/config.toml
echo "[target.aarch64-unknown-linux-gnu]" >> .cargo/config.toml
echo "linker = \"aarch64-linux-gnu-gcc\"" >> .cargo/config.toml
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist --target aarch64-unknown-linux-gnu -i ${{ matrix.python-version }}
maturin build --sdist -o dist
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
build_ubuntu_arm:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name : Install rustup target
run: |
sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu
rustup target add aarch64-unknown-linux-gnu
- name: Setup cargo target and linker
run: |
mkdir -p .cargo
touch .cargo/config.toml
echo "[target.aarch64-unknown-linux-gnu]" >> .cargo/config.toml
echo "linker = \"aarch64-linux-gnu-gcc\"" >> .cargo/config.toml
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist --target aarch64-unknown-linux-gnu -i ${{ matrix.python-version }}
maturin build --sdist -o dist
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
Expand All @@ -39,21 +105,17 @@ jobs:
runs-on: [macos-12]
strategy:
matrix:
arch: ['x86_64']
env:
# Polyglot depends on tree-sitter-python which tries to compile c++ files stdlibc++ which is depreciated in newer version of mac.
MACOSX_DEPLOYMENT_TARGET: 10.16
CXXFLAGS: -stdlib=libc++ -mmacosx-version-min=10.16
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: ${{ matrix.python-version }}
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist
- name: Pypi Release for macos-latest
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
Expand All @@ -62,21 +124,21 @@ jobs:
runs-on: [macos-latest]
strategy:
matrix:
arch: ['arm64']
env:
# Polyglot depends on tree-sitter-python which tries to compile c++ files stdlibc++ which is depreciated in newer version of mac.
CXXFLAGS: -stdlib=libc++
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Build wheel with Maturin
python-version: ${{ matrix.python-version }}
- name: Install rustup targets
run: |
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
- name: Build wheel with Maturin
run: |
pip install --upgrade maturin
maturin build --release -o dist --target universal2-apple-darwin
- name: Pypi Release for macos-latest
maturin build --release -o dist --target universal2-apple-darwin -i ${{ matrix.python-version }}
- name: Pypi Release
run: |
pip install twine
twine upload --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "polyglot_piranha"
requires-python = ">=3.7"
requires-python = ">=3.8"
description = "Polyglot Piranha is a library for performing structural find and replace with deep cleanup."
authors = [
{ name = "Ameya Ketkar", email = "[email protected]" },
Expand Down

0 comments on commit 3a57776

Please sign in to comment.