Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Ubuntu packages and Docker image #63

Ubuntu packages and Docker image

Ubuntu packages and Docker image #63

name: Ubuntu packages and Docker image
on:
workflow_dispatch:
inputs:
packageVersion:
default: "2.10.0"
jobs:
#
# PostgresML extension.
#
postgresml-pgml:
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 origin 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 .
Morty Proxy This is a proxified and sanitized view of the page, visit original site.