Content-Length: 282871 | pFad | http://github.com/postgresml/postgresml/actions/runs/14476880687/workflow

DD Fix Python 3.12 build issues · postgresml/postgresml@8ced585 · GitHub
Skip to content

Ubuntu packages and Docker image #69

Ubuntu packages and Docker image

Ubuntu packages and Docker image #69

name: Ubuntu packages and Docker image
on:
workflow_dispatch:
inputs:
packageVersion:
default: "2.10.0"
jobs:
#
# PostgresML Python package.
#
postgresml-python:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-22.04", "buildjet-4vcpu-ubuntu-2204-arm"]
ubuntu_version: ["20.04", "22.04", "24.04"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Build and release Python package
env:
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
UBUNTU_VERSION: ${{ matrix.ubuntu_version }}
run: |
sudo apt update
sudo apt install -y python3-dev python3-pip python3-virtualenv software-properties-common python3-wheel-whl python3-pip-whl python3-setuptools-whl
# Add deadsnakes PPA for all Python versions
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
# Install specific Python versions based on Ubuntu target
if [[ "$UBUNTU_VERSION" == "20.04" ]]; then
sudo apt install -y python3.8 python3.8-dev python3.8-venv
elif [[ "$UBUNTU_VERSION" == "22.04" ]]; then
sudo apt install -y python3.10 python3.10-dev python3.10-venv
elif [[ "$UBUNTU_VERSION" == "24.04" ]]; then
sudo apt install -y python3.12 python3.12-dev python3.12-venv
fi
# Install PyTorch before running the build script to satisfy auto_gptq's requirements
pip install torch --user
bash packages/postgresml-python/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}
#
# PostgresML extension.
#
postgresml-pgml:
needs: postgresml-python
strategy:
fail-fast: false # Let the other job finish
matrix:
os: ["buildjet-4vcpu-ubuntu-2204", "buildjet-8vcpu-ubuntu-2204-arm"]
ubuntu_version: ["20.04", "22.04", "24.04"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Validate cargo is working
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: version
- name: Cache artifacts
uses: buildjet/cache@v3
with:
path: pgml-extension/target
key: buildjet-pgml-extension-artifacts-1-${{ runner.arch }} # Change this when dependencies change
- name: Cache pgrx
uses: buildjet/cache@v3
with:
path: ~/.cargo
key: buildjet-pgml-extension-pgrx-2-${{ runner.arch }} # Change this when dependencies change
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
TZ: Etc/UTC
run: |
git submodule update --init --recursive
git fetch --tags
git fetch --depth 1 origen tag v${{ inputs.packageVersion }}
git checkout v${{ inputs.packageVersion }}
# PostgreSQL apt
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
sudo sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:apt-fast/stable --yes
sudo add-apt-repository ppa:deadsnakes/ppa --yes
sudo apt update
sudo apt-get install -y apt-fast
sudo apt-get update && sudo apt-fast install -y \
libopenblas-dev \
libssl-dev \
bison \
flex \
pkg-config \
cmake \
libreadline-dev \
libz-dev \
curl \
lsb-release \
tzdata \
sudo \
cmake \
libpq-dev \
libclang-dev \
wget \
postgresql-17 \
postgresql-16 \
postgresql-15 \
postgresql-14 \
postgresql-13 \
postgresql-12 \
postgresql-server-dev-17 \
postgresql-server-dev-16 \
postgresql-server-dev-15 \
postgresql-server-dev-14 \
postgresql-server-dev-13 \
postgresql-server-dev-12 \
lsb-release \
python3.10 \
python3-pip \
libpython3.10-dev \
python3.10-dev \
ruby \
lld
curl -sLO https://github.com/deb-s3/deb-s3/releases/download/0.11.4/deb-s3-0.11.4.gem
sudo gem install deb-s3-0.11.4.gem
dpkg-deb --version
- name: Install pgrx
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: install
args: cargo-pgrx --version "0.12.9" --locked
- name: pgrx init
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: init --pg12=/usr/lib/postgresql/12/bin/pg_config --pg13=/usr/lib/postgresql/13/bin/pg_config --pg14=/usr/lib/postgresql/14/bin/pg_config --pg15=/usr/lib/postgresql/15/bin/pg_config --pg16=/usr/lib/postgresql/16/bin/pg_config --pg17=/usr/lib/postgresql/17/bin/pg_config
- name: Build Postgres 12
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/12/bin/pg_config
- name: Build Postgres 13
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/13/bin/pg_config
- name: Build Postgres 14
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/14/bin/pg_config
- name: Build Postgres 15
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/15/bin/pg_config
- name: Build Postgres 16
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/16/bin/pg_config
- name: Build Postgres 17
uses: postgresml/gh-actions-cargo@master
with:
working-directory: pgml-extension
command: pgrx
args: package --pg-config /usr/lib/postgresql/17/bin/pg_config
- name: Build debs
env:
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
run: |
bash packages/postgresql-pgml/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}
#
# PostgresML meta package which installs
# all the necessary dependencies.
#
postgresml:
needs: postgresml-pgml
strategy:
fail-fast: false # Let the other job finish
matrix:
os: ["ubuntu-22.04"]
ubuntu_version: ["20.04", "22.04", "24.04"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Build and release package
env:
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
run: |
bash packages/postgresml/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}
#
# PostgresML dashboard.
#
postgresml-dashboard:
needs: postgresml
strategy:
fail-fast: false # Let the other job finish
matrix:
os: ["ubuntu-22.04", "buildjet-4vcpu-ubuntu-2204-arm"]
ubuntu_version: ["20.04", "22.04", "24.04"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Build and release package
env:
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
run: |
cargo install cargo-pgml-components
bash packages/postgresml-dashboard/release.sh ${{ inputs.packageVersion }} ${{ matrix.ubuntu_version }}
#
# PostgresML Docker image.
#
publish-extension-docker-image:
needs:
- postgresml
- postgresml-dashboard
strategy:
fail-fast: false # Let the other job finish
matrix:
os: ["buildjet-4vcpu-ubuntu-2204"]
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: docker
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
run: |
docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --use --name mybuilder
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag ghcr.io/postgresml/postgresml:${{ inputs.packageVersion }} \
--push .








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgresml/postgresml/actions/runs/14476880687/workflow

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy