Skip to content

Ubuntu packages and Docker image #52

Ubuntu packages and Docker image

Ubuntu packages and Docker image #52

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
max-parallel: 1 # Only one job at a time from this matrix
matrix:
include:
# Ubuntu 24.04 LTS (Noble)
- os: "ubuntu-24.04"
ubuntu_version: "noble"
arch: "amd64"
- os: "ubuntu-24.04-arm"
ubuntu_version: "noble"
arch: "arm64"
# Ubuntu 22.04 LTS (Jammy)
- os: "ubuntu-22.04"
ubuntu_version: "jammy"
arch: "amd64"
- os: "ubuntu-22.04-arm"
ubuntu_version: "jammy"
arch: "arm64"
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-11 \
postgresql-server-dev-17 \
postgresql-server-dev-16 \
postgresql-server-dev-15 \
postgresql-server-dev-14 \
postgresql-server-dev-13 \
postgresql-server-dev-12 \
postgresql-server-dev-11 \
lsb-release \
python3.11 \
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
sudo dpkg --configure -a
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: |
# Always build using latest scripts
git checkout master
bash packages/postgresql-pgml/release.sh ${{ inputs.packageVersion }}
#
# PostgresML meta package which installs
# all the necessary dependencies.
#
postgresml:
needs: postgresml-pgml
strategy:
fail-fast: false
matrix:
include:
# Ubuntu 24.04 LTS (Noble)
- os: "ubuntu-24.04"
ubuntu_version: "noble"
arch: "amd64"
- os: "ubuntu-24.04-arm"
ubuntu_version: "noble"
arch: "arm64"
# Ubuntu 22.04 LTS (Jammy)
- os: "ubuntu-22.04"
ubuntu_version: "jammy"
arch: "amd64"
- os: "ubuntu-22.04-arm"
ubuntu_version: "jammy"
arch: "arm64"
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 }}
#
# PostgresML dashboard.
#
postgresml-dashboard:
strategy:
fail-fast: false
matrix:
include:
# Ubuntu 24.04 LTS (Noble)
- os: "ubuntu-24.04"
ubuntu_version: "noble"
arch: "amd64"
- os: "ubuntu-24.04-arm"
ubuntu_version: "noble"
arch: "arm64"
# Ubuntu 22.04 LTS (Jammy)
- os: "ubuntu-22.04"
ubuntu_version: "jammy"
arch: "amd64"
- os: "ubuntu-22.04-arm"
ubuntu_version: "jammy"
arch: "arm64"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Update dependencies
run: |
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
sudo dpkg --configure -a
dpkg-deb --version
- 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 }}
#
# PostgresML Docker image.
#
publish-extension-docker-image:
needs:
- postgresml
- postgresml-dashboard
strategy:
fail-fast: false # Let the other job finish
matrix:
include:
- os: "ubuntu-24.04"
ubuntu_version: "noble"
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 .
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