Skip to content

Update release.yml for aarch #329

Update release.yml for aarch

Update release.yml for aarch #329

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: [[38, "3.8"], [39, "3.9"], [310, "3.10"], [311, "3.11"]]
steps:
- uses: actions/checkout@v2
- name: Set python version
run: |
echo "/opt/python/cp${{ matrix.python-version[0] }}-cp${{ matrix.python-version[0] }}/bin" >> $GITHUB_PATH
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.71.1
components: rustfmt
target: aarch64-unknown-linux-gnu
default: true
- 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
- name: Setup project
run: |
just bootstrap-python
- uses: PyO3/maturin-action@v1
with:
rust-toolchain: 1.71.1
maturin-version: v0.14.15
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: 1.71.1
maturin-version: v0.14.15
command: build
args: -m connectorx-python/Cargo.toml -i python --release --manylinux 2_28 --features integrated-auth-gssapi
env:
SQLITE3_STATIC: 1
- uses: PyO3/maturin-action@v1
with:
maturin-version: v0.14.15
command: build
args: -m connectorx-python/Cargo.toml --target aarch64-unknown-linux-gnu -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[1] }}"
path: connectorx-python/target/wheels/*.whl
win-and-mac:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["windows-latest", "macos-11"]
python-version: ["3.8", "3.9", "3.10", "3.11"]
include:
- os: "macos-11"
features: "--features integrated-auth-gssapi"
steps:
- uses: actions/checkout@v2
- uses: ankane/setup-mysql@v1
with:
mysql-version: 8
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.71.1
components: rustfmt
default: true
- 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: 1.71.1
maturin-version: v0.14.15
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: 1.71.1
maturin-version: v0.14.15
command: build
args: -m connectorx-python/Cargo.toml -i python --release ${{ matrix.features }}
env:
SQLITE3_STATIC: 1
- uses: actions/upload-artifact@v2
with:
name: "${{ matrix.os }}-${{ matrix.python-version }}"
path: connectorx-python/target/wheels/*.whl
apple-arm:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- uses: ankane/setup-mysql@v1
with:
mysql-version: 8
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.71.1
components: rustfmt
target: aarch64-apple-darwin
default: true
- 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: 1.71.1
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: 1.71.1
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
- uses: actions/upload-artifact@v2
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.8", "3.9", "3.10", "3.11"]
os: [macos-11, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
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