mirror of
https://github.com/qdrant/qdrant.git
synced 2026-08-06 10:00:58 -05:00
* parent 88f68d95b5
author Ivan Pleshkov <pleshkov.ivan@gmail.com> 1736245999 +0100
committer Ivan Pleshkov <pleshkov.ivan@gmail.com> 1736331073 +0100
gpu test and release workflows
no unprivileged, add sdk
fix ci
include llvm
try to use external sdk
use another vk sdk script
remove ninja
native sdk installation
debug vulkan version
use non-dev packages
debug vkinfo
remove llvm dep
ubuntu process-results
ghcr
* remove running gpu test while pr
99 lines
4.4 KiB
YAML
99 lines
4.4 KiB
YAML
name: Build and deploy docker image
|
|
|
|
on:
|
|
push:
|
|
# Pattern matched against refs/tags
|
|
tags:
|
|
- '*' # Push events to every tag not containing /
|
|
|
|
jobs:
|
|
|
|
build:
|
|
# Run build on our self-hosted runner, we had trouble with shared runners
|
|
runs-on: [self-hosted, linux, x64]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Get current tag
|
|
id: vars
|
|
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
|
|
- name: Build the Docker image
|
|
env:
|
|
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
|
|
run: |
|
|
# Create build container
|
|
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
docker buildx create --use
|
|
|
|
# Authenticate on registries
|
|
docker login --username generall --password ${{ secrets.DOCKERHUB_TOKEN }}
|
|
docker login https://docker.pkg.github.com -u qdrant --password ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# Build regular image for Docker Hub
|
|
DOCKERHUB_TAG="qdrant/qdrant:${{ github.ref_name }}"
|
|
DOCKERHUB_TAG_LATEST="qdrant/qdrant:latest"
|
|
TAGS="-t ${DOCKERHUB_TAG} -t ${DOCKERHUB_TAG_LATEST}"
|
|
GITHUB_TAG="docker.pkg.github.com/qdrant/qdrant/qdrant:${{ github.ref_name }}"
|
|
|
|
# Pull, retag and push to GitHub packages
|
|
docker buildx build --platform='linux/amd64,linux/arm64' --build-arg GIT_COMMIT_ID=${{ github.sha }} $TAGS --push --label "org.opencontainers.image.version"=$RELEASE_VERSION .
|
|
docker pull $DOCKERHUB_TAG
|
|
docker tag $DOCKERHUB_TAG $GITHUB_TAG
|
|
docker push $GITHUB_TAG
|
|
|
|
# Build unprivileged image for Docker Hub
|
|
DOCKERHUB_TAG_UNPRIVILEGED="qdrant/qdrant:${{ github.ref_name }}-unprivileged"
|
|
DOCKERHUB_TAG_LATEST_UNPRIVILEGED="qdrant/qdrant:latest-unprivileged"
|
|
TAGS_UNPRIVILEGED="-t ${DOCKERHUB_TAG_UNPRIVILEGED} -t ${DOCKERHUB_TAG_LATEST_UNPRIVILEGED}"
|
|
GITHUB_TAG_UNPRIVILEGED="docker.pkg.github.com/qdrant/qdrant/qdrant:${{ github.ref_name }}-unprivileged"
|
|
|
|
# Pull, retag and push to GitHub packages
|
|
docker buildx build --build-arg='USER_ID=1000' --platform='linux/amd64,linux/arm64' $TAGS_UNPRIVILEGED --push --label "org.opencontainers.image.version"=$RELEASE_VERSION .
|
|
docker pull $DOCKERHUB_TAG_UNPRIVILEGED
|
|
docker tag $DOCKERHUB_TAG_UNPRIVILEGED $GITHUB_TAG_UNPRIVILEGED
|
|
docker push $GITHUB_TAG_UNPRIVILEGED
|
|
|
|
build-gpu:
|
|
runs-on: [self-hosted, linux, x64]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: Get current tag
|
|
id: vars
|
|
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
|
|
- name: Build the Docker image
|
|
env:
|
|
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
|
|
run: |
|
|
# Create build container
|
|
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
docker buildx create --use
|
|
|
|
# Authenticate on registries
|
|
docker login --username generall --password ${{ secrets.DOCKERHUB_TOKEN }}
|
|
docker login https://docker.pkg.github.com -u qdrant --password ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# Build GPU NVIDIA image for Docker Hub
|
|
DOCKERHUB_TAG="qdrant/qdrant:${{ github.ref_name }}-gpu-nvidia"
|
|
DOCKERHUB_TAG_LATEST="qdrant/qdrant:gpu-nvidia-latest"
|
|
TAGS="-t ${DOCKERHUB_TAG} -t ${DOCKERHUB_TAG_LATEST}"
|
|
GITHUB_TAG="docker.pkg.github.com/qdrant/qdrant/qdrant:${{ github.ref_name }}-gpu-nvidia"
|
|
|
|
# Pull, retag and push to GitHub packages
|
|
docker buildx build --build-arg GPU=nvidia --platform='linux/amd64' --build-arg GIT_COMMIT_ID=${{ github.sha }} $TAGS --push --label "org.opencontainers.image.version"=$RELEASE_VERSION .
|
|
docker pull $DOCKERHUB_TAG
|
|
docker tag $DOCKERHUB_TAG $GITHUB_TAG
|
|
docker push $GITHUB_TAG
|
|
|
|
# Build GPU AMD image for Docker Hub
|
|
DOCKERHUB_TAG="qdrant/qdrant:${{ github.ref_name }}-gpu-amd"
|
|
DOCKERHUB_TAG_LATEST="qdrant/qdrant:gpu-amd-latest"
|
|
TAGS="-t ${DOCKERHUB_TAG} -t ${DOCKERHUB_TAG_LATEST}"
|
|
GITHUB_TAG="docker.pkg.github.com/qdrant/qdrant/qdrant:${{ github.ref_name }}-gpu-amd"
|
|
|
|
# Pull, retag and push to GitHub packages
|
|
docker buildx build --build-arg GPU=amd --platform='linux/amd64' --build-arg GIT_COMMIT_ID=${{ github.sha }} $TAGS --push --label "org.opencontainers.image.version"=$RELEASE_VERSION .
|
|
docker pull $DOCKERHUB_TAG
|
|
docker tag $DOCKERHUB_TAG $GITHUB_TAG
|
|
docker push $GITHUB_TAG
|