Skip to content

Commit 686942a

Browse files
committed
Improve Python package build process
- Update ubuntu-postgresml-python-package workflow with better Python setup - Add workflow_call support to make it callable from main workflow - Change main workflow to use reusable workflow for Python package build - Addresses dependency issues with Python build for Ubuntu 24.04
1 parent 8ced585 commit 686942a

File tree

2 files changed

+34
-36
lines changed

2 files changed

+34
-36
lines changed

.github/workflows/ubuntu-packages-and-docker-image.yml

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,10 @@ jobs:
1010
# PostgresML Python package.
1111
#
1212
postgresml-python:
13-
strategy:
14-
fail-fast: false
15-
matrix:
16-
os: ["ubuntu-22.04", "buildjet-4vcpu-ubuntu-2204-arm"]
17-
ubuntu_version: ["20.04", "22.04", "24.04"]
18-
runs-on: ${{ matrix.os }}
19-
steps:
20-
- uses: actions/checkout@v3
21-
- name: Build and release Python package
22-
env:
23-
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
24-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
25-
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
26-
UBUNTU_VERSION: ${{ matrix.ubuntu_version }}
27-
run: |
28-
sudo apt update
29-
sudo apt install -y python3-dev python3-pip python3-virtualenv software-properties-common python3-wheel-whl python3-pip-whl python3-setuptools-whl
30-
31-
# Add deadsnakes PPA for all Python versions
32-
sudo add-apt-repository -y ppa:deadsnakes/ppa
33-
sudo apt update
34-
35-
# Install specific Python versions based on Ubuntu target
36-
if [[ "$UBUNTU_VERSION" == "20.04" ]]; then
37-
sudo apt install -y python3.8 python3.8-dev python3.8-venv
38-
elif [[ "$UBUNTU_VERSION" == "22.04" ]]; then
39-
sudo apt install -y python3.10 python3.10-dev python3.10-venv
40-
elif [[ "$UBUNTU_VERSION" == "24.04" ]]; then
41-
sudo apt install -y python3.12 python3.12-dev python3.12-venv
42-
fi
43-
44-
# Install PyTorch before running the build script to satisfy auto_gptq's requirements
45-
pip install torch --user
46-
47-
bash packages/postgresml-python/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}
13+
uses: ./.github/workflows/ubuntu-postgresml-python-package.yaml
14+
with:
15+
packageVersion: ${{ inputs.packageVersion }}
16+
secrets: inherit
4817

4918
#
5019
# PostgresML extension.

.github/workflows/ubuntu-postgresml-python-package.yaml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ on:
44
workflow_dispatch:
55
inputs:
66
packageVersion:
7-
default: "2.8.4"
7+
default: "2.10.0"
8+
workflow_call:
9+
inputs:
10+
packageVersion:
11+
type: string
12+
required: true
13+
default: "2.10.0"
814

915
jobs:
1016
postgresml-python:
@@ -21,5 +27,28 @@ jobs:
2127
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
2228
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
2329
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
30+
UBUNTU_VERSION: ${{ matrix.ubuntu_version }}
2431
run: |
32+
sudo apt update
33+
sudo apt install -y python3-dev python3-pip python3-virtualenv software-properties-common python3-wheel-whl python3-pip-whl python3-setuptools-whl
34+
35+
# Add deadsnakes PPA for all Python versions
36+
sudo add-apt-repository -y ppa:deadsnakes/ppa
37+
sudo apt update
38+
39+
# Install specific Python versions based on Ubuntu target
40+
if [[ "$UBUNTU_VERSION" == "20.04" ]]; then
41+
sudo apt install -y python3.8 python3.8-dev python3.8-venv
42+
elif [[ "$UBUNTU_VERSION" == "22.04" ]]; then
43+
sudo apt install -y python3.10 python3.10-dev python3.10-venv
44+
elif [[ "$UBUNTU_VERSION" == "24.04" ]]; then
45+
sudo apt install -y python3.12 python3.12-dev python3.12-venv
46+
fi
47+
48+
# Ensure pip is updated
49+
python3 -m pip install --upgrade pip setuptools wheel
50+
51+
# Install PyTorch globally before running the build script
52+
sudo python3 -m pip install torch
53+
2554
bash packages/postgresml-python/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}

0 commit comments

Comments
 (0)