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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy