Skip to content

add python 3.12

add python 3.12 #346

Workflow file for this run

name: release
on:
push:
branches:
- prerelease
- release
jobs:
linux:
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- name: Get commit hash
run: echo "PYTHON_VERSION=${{matrix.python-version}}" | sed -e "s/\.//g" >> $GITHUB_ENV
- name: Set python version
run: |
echo "/opt/python/cp${{ env.PYTHON_VERSION }}-cp${{ env.PYTHON_VERSION }}/bin" >> $GITHUB_PATH
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: aarch64-unknown-linux-gnu
components: rustfmt
- uses: extractions/setup-just@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: Gr1N/setup-poetry@v8
- name: Install tools
run: |
yum install -y epel-release
yum install -y mysql-devel postgresql-devel freetds-devel krb5-libs clang-devel openssl-devel perl-IPC-Cmd
- name: Setup project
run: |
just bootstrap-python
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v1.4.0
command: build
args: -m connectorx-python/Cargo.toml -i python --release --manylinux 2_28 --features integrated-auth-gssapi
env:
SQLITE3_STATIC: 1
- name: Copy j4rs dependencies into dist
run: |
cp -rf connectorx-python/target/release/jassets connectorx-python/connectorx/dependencies
# rebuild the wheel to incorporate j4rs dependencies
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v1.4.0
command: build
args: -m connectorx-python/Cargo.toml -i python --release --manylinux 2_28 --features integrated-auth-gssapi
env:
SQLITE3_STATIC: 1
- uses: actions/upload-artifact@v3
with:
name: "ubuntu-latest-${{ matrix.python-version }}"
path: connectorx-python/target/wheels/*.whl
win-and-mac:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["windows-latest", "macos-latest"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: "macos-latest"
features: "--features integrated-auth-gssapi"
steps:
- uses: actions/checkout@v2
- uses: ankane/setup-mysql@v1
with:
mysql-version: 8
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: aarch64-unknown-linux-gnu
components: rustfmt
- uses: extractions/setup-just@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: Gr1N/setup-poetry@v8
- name: Setup project
run: |
just bootstrap-python
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v1.4.0
command: build
args: -m connectorx-python/Cargo.toml -i python --release ${{ matrix.features }}
env:
SQLITE3_STATIC: 1
- name: Copy j4rs dependencies into dist
run: |
cp -r connectorx-python/target/release/jassets connectorx-python/connectorx/dependencies
# rebuild the wheel to incorporate j4rs dependencies
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v1.4.0
command: build
args: -m connectorx-python/Cargo.toml -i python --release ${{ matrix.features }}
env:
SQLITE3_STATIC: 1
- uses: actions/upload-artifact@v3
with:
name: "${{ matrix.os }}-${{ matrix.python-version }}"
path: connectorx-python/target/wheels/*.whl
apple-arm:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- uses: ankane/setup-mysql@v1
with:
mysql-version: 8
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: aarch64-unknown-linux-gnu
components: rustfmt
- uses: extractions/setup-just@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: Gr1N/setup-poetry@v8
- name: Setup project
run: |
just bootstrap-python
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v0.14.15
command: build
args: -m connectorx-python/Cargo.toml --target aarch64-apple-darwin -i python --release --features integrated-auth-gssapi
env:
SQLITE3_STATIC: 1
- name: Copy j4rs dependencies into dist
run: |
cp -rf connectorx-python/target/aarch64-apple-darwin/release/jassets connectorx-python/connectorx/dependencies
# rebuild the wheel to incorporate j4rs dependencies
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
maturin-version: v1.4.0
command: build
args: -m connectorx-python/Cargo.toml --target aarch64-apple-darwin -i python --release --features integrated-auth-gssapi
env:
SQLITE3_STATIC: 1
- uses: actions/upload-artifact@v3
with:
name: "macos-${{ matrix.python-version }}"
path: connectorx-python/target/wheels/*.whl
verify:
runs-on: ${{ matrix.os }}
needs: [win-and-mac, linux, apple-arm]
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: actions/download-artifact@v3
with:
name: "${{ matrix.os }}-${{ matrix.python-version }}"
- run: |
pip install *.whl
python -c "import connectorx"
upload:
runs-on: ubuntu-latest
needs: [verify]
steps:
- name: Download all artifacts
uses: actions/download-artifact@v3
- name: Setup environment
run: |
tree .
echo "/home/runner/.local/bin" >> $GITHUB_PATH
- name: Install Twine
run: pip install twine
- name: Upload to PyPI site
if: github.ref == 'refs/heads/release'
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
run: |
for file in $(ls **/*)
do
twine upload --non-interactive -u __token__ -p $PYPI_TOKEN $file || continue
done
- name: Upload to PyPI test site
if: github.ref == 'refs/heads/prerelease'
env:
PYPI_TEST_TOKEN: ${{ secrets.PYPI_TEST_TOKEN }}
run: |
for file in $(ls **/*)
do
twine upload --non-interactive --repository-url https://test.pypi.org/legacy/ -u __token__ -p $PYPI_TEST_TOKEN $file --verbose || continue
done