Skip to content

VectorChord-bm25

VectorChord-bm25 #3

name: VectorChord-bm25
on:
workflow_dispatch:
jobs:
versions:
runs-on: ubuntu-latest
outputs:
VCHORDBM25: ${{ steps.versions.outputs.VCHORDBM25 }}
PGTOKENIZER: ${{ steps.versions.outputs.PGTOKENIZER }}
VCHORD: ${{ steps.versions.outputs.VCHORD }}
PGVECTOR: ${{ steps.versions.outputs.PGVECTOR }}
steps:
- name: Get latest versions
id: versions
run: |
VCHORDBM25=$(curl -s https://api.github.com/repos/tensorchord/VectorChord-bm25/releases/latest | jq -r '.tag_name' | sed 's/^v//')
echo "VCHORDBM25=${VCHORDBM25}" >> $GITHUB_OUTPUT
PGTOKENIZER=$(curl -s https://api.github.com/repos/tensorchord/pg_tokenizer.rs/releases/latest | jq -r '.tag_name' | sed 's/^v//')
echo "PGTOKENIZER=${PGTOKENIZER}" >> $GITHUB_OUTPUT
VCHORD=$(curl -s https://api.github.com/repos/tensorchord/VectorChord/releases/latest | jq -r '.tag_name' | sed 's/^v//')
echo "VCHORD=${VCHORD}" >> $GITHUB_OUTPUT
PGVECTOR=$(curl -s https://api.github.com/repos/pgvector/pgvector/tags | jq -r '.[0].name' | sed 's/^v//')
echo "PGVECTOR=${PGVECTOR}" >> $GITHUB_OUTPUT
docker:
needs: ["versions"]
runs-on: ${{ matrix.platform == 'amd64' && 'ubuntu-22.04' || 'ubuntu-22.04-arm' }}
strategy:
matrix:
pg_major: ["14", "15", "16", "17", "18"]
platform: ["amd64", "arm64"]
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push build to Docker Registry
uses: docker/build-push-action@v6
with:
context: ./vchord_bm25
push: true
platforms: linux/${{ matrix.platform }}
provenance: false
tags: |
tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORD }}-${{ matrix.platform }}
ghcr.io/tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORD }}-${{ matrix.platform }}
build-args: |
BASE=${{ matrix.pg_major }}-bookworm
VCHORDBM25=${{ needs.versions.outputs.VCHORDBM25 }}
PGTOKENIZER=${{ needs.versions.outputs.PGTOKENIZER }}
VCHORD=${{ needs.versions.outputs.VCHORD }}
PGVECTOR=${{ needs.versions.outputs.PGVECTOR }}
create-manifests:
needs: ["versions", "docker"]
runs-on: ubuntu-latest
strategy:
matrix:
pg_major: ["14", "15", "16", "17", "18"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create manifest and push
run: |
docker manifest create \
tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }} \
--amend tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}-amd64 \
--amend tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}-arm64
docker manifest push tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}
docker manifest create \
ghcr.io/tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }} \
--amend ghcr.io/tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}-amd64 \
--amend ghcr.io/tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}-arm64
docker manifest push ghcr.io/tensorchord/vchord_bm25-postgres:pg${{ matrix.pg_major }}-v${{ needs.versions.outputs.VCHORDBM25 }}