|
--- |
|
name: 'build container images' |
|
|
|
on: |
|
push: |
|
branches: |
|
- master |
|
tags: |
|
- '*' |
|
|
|
concurrency: |
|
group: ci-${{ github.head_ref || github.ref }}-${{ github.repository }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
self-hosted-jobs: |
|
uses: ./.github/workflows/image_build.yml |
|
with: |
|
tag-latest: ${{ matrix.tag-latest }} |
|
tag-suffix: ${{ matrix.tag-suffix }} |
|
ffmpeg: ${{ matrix.ffmpeg }} |
|
image-type: ${{ matrix.image-type }} |
|
build-type: ${{ matrix.build-type }} |
|
cuda-major-version: ${{ matrix.cuda-major-version }} |
|
cuda-minor-version: ${{ matrix.cuda-minor-version }} |
|
platforms: ${{ matrix.platforms }} |
|
runs-on: ${{ matrix.runs-on }} |
|
base-image: ${{ matrix.base-image }} |
|
grpc-base-image: ${{ matrix.grpc-base-image }} |
|
aio: ${{ matrix.aio }} |
|
makeflags: ${{ matrix.makeflags }} |
|
latest-image: ${{ matrix.latest-image }} |
|
latest-image-aio: ${{ matrix.latest-image-aio }} |
|
secrets: |
|
dockerUsername: ${{ secrets.DOCKERHUB_USERNAME }} |
|
dockerPassword: ${{ secrets.DOCKERHUB_PASSWORD }} |
|
quayUsername: ${{ secrets.LOCALAI_REGISTRY_USERNAME }} |
|
quayPassword: ${{ secrets.LOCALAI_REGISTRY_PASSWORD }} |
|
strategy: |
|
|
|
|
|
max-parallel: ${{ github.event_name != 'pull_request' && 6 || 10 }} |
|
matrix: |
|
include: |
|
|
|
- build-type: '' |
|
|
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '' |
|
ffmpeg: '' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: '' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "11" |
|
cuda-minor-version: "7" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda11' |
|
ffmpeg: '' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "12" |
|
cuda-minor-version: "0" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda12' |
|
ffmpeg: '' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "11" |
|
cuda-minor-version: "7" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '-cublas-cuda11-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
aio: "-aio-gpu-nvidia-cuda-11" |
|
latest-image: 'latest-gpu-nvidia-cuda-11' |
|
latest-image-aio: 'latest-aio-gpu-nvidia-cuda-11' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "12" |
|
cuda-minor-version: "0" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '-cublas-cuda12-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
aio: "-aio-gpu-nvidia-cuda-12" |
|
latest-image: 'latest-gpu-nvidia-cuda-12' |
|
latest-image-aio: 'latest-aio-gpu-nvidia-cuda-12' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: '' |
|
|
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '' |
|
ffmpeg: '' |
|
image-type: 'extras' |
|
base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'hipblas' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
tag-suffix: '-hipblas-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
aio: "-aio-gpu-hipblas" |
|
base-image: "rocm/dev-ubuntu-22.04:6.1" |
|
grpc-base-image: "ubuntu:22.04" |
|
latest-image: 'latest-gpu-hipblas' |
|
latest-image-aio: 'latest-aio-gpu-hipblas' |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'hipblas' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-hipblas' |
|
ffmpeg: 'false' |
|
image-type: 'extras' |
|
base-image: "rocm/dev-ubuntu-22.04:6.1" |
|
grpc-base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'sycl_f16' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f16-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
aio: "-aio-gpu-intel-f16" |
|
latest-image: 'latest-gpu-intel-f16' |
|
latest-image-aio: 'latest-aio-gpu-intel-f16' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'sycl_f32' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'auto' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f32-ffmpeg' |
|
ffmpeg: 'true' |
|
image-type: 'extras' |
|
runs-on: 'arc-runner-set' |
|
aio: "-aio-gpu-intel-f32" |
|
latest-image: 'latest-gpu-intel-f32' |
|
latest-image-aio: 'latest-aio-gpu-intel-f32' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
|
|
- build-type: 'sycl_f16' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f16-core' |
|
ffmpeg: 'false' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'sycl_f32' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f32-core' |
|
ffmpeg: 'false' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'sycl_f16' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f16-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'sycl_f32' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
base-image: "quay.io/go-skynet/intel-oneapi-base:latest" |
|
grpc-base-image: "ubuntu:22.04" |
|
tag-suffix: '-sycl-f32-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'hipblas' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-hipblas-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
base-image: "rocm/dev-ubuntu-22.04:6.1" |
|
grpc-base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
- build-type: 'hipblas' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-hipblas-core' |
|
ffmpeg: 'false' |
|
image-type: 'core' |
|
base-image: "rocm/dev-ubuntu-22.04:6.1" |
|
grpc-base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=3 --output-sync=target" |
|
|
|
core-image-build: |
|
uses: ./.github/workflows/image_build.yml |
|
with: |
|
tag-latest: ${{ matrix.tag-latest }} |
|
tag-suffix: ${{ matrix.tag-suffix }} |
|
ffmpeg: ${{ matrix.ffmpeg }} |
|
image-type: ${{ matrix.image-type }} |
|
build-type: ${{ matrix.build-type }} |
|
cuda-major-version: ${{ matrix.cuda-major-version }} |
|
cuda-minor-version: ${{ matrix.cuda-minor-version }} |
|
platforms: ${{ matrix.platforms }} |
|
runs-on: ${{ matrix.runs-on }} |
|
aio: ${{ matrix.aio }} |
|
base-image: ${{ matrix.base-image }} |
|
grpc-base-image: ${{ matrix.grpc-base-image }} |
|
makeflags: ${{ matrix.makeflags }} |
|
latest-image: ${{ matrix.latest-image }} |
|
latest-image-aio: ${{ matrix.latest-image-aio }} |
|
secrets: |
|
dockerUsername: ${{ secrets.DOCKERHUB_USERNAME }} |
|
dockerPassword: ${{ secrets.DOCKERHUB_PASSWORD }} |
|
quayUsername: ${{ secrets.LOCALAI_REGISTRY_USERNAME }} |
|
quayPassword: ${{ secrets.LOCALAI_REGISTRY_PASSWORD }} |
|
strategy: |
|
max-parallel: ${{ github.event_name != 'pull_request' && 2 || 4 }} |
|
matrix: |
|
include: |
|
- build-type: '' |
|
platforms: 'linux/amd64,linux/arm64' |
|
tag-latest: 'auto' |
|
tag-suffix: '-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
aio: "-aio-cpu" |
|
latest-image: 'latest-cpu' |
|
latest-image-aio: 'latest-aio-cpu' |
|
makeflags: "--jobs=4 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "11" |
|
cuda-minor-version: "7" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda11-core' |
|
ffmpeg: '' |
|
image-type: 'core' |
|
base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=4 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "12" |
|
cuda-minor-version: "0" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda12-core' |
|
ffmpeg: '' |
|
image-type: 'core' |
|
base-image: "ubuntu:22.04" |
|
runs-on: 'arc-runner-set' |
|
makeflags: "--jobs=4 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "11" |
|
cuda-minor-version: "7" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda11-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=4 --output-sync=target" |
|
- build-type: 'cublas' |
|
cuda-major-version: "12" |
|
cuda-minor-version: "0" |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-cublas-cuda12-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=4 --output-sync=target" |
|
- build-type: 'vulkan' |
|
platforms: 'linux/amd64' |
|
tag-latest: 'false' |
|
tag-suffix: '-vulkan-ffmpeg-core' |
|
latest-image: 'latest-vulkan-ffmpeg-core' |
|
ffmpeg: 'true' |
|
image-type: 'core' |
|
runs-on: 'arc-runner-set' |
|
base-image: "ubuntu:22.04" |
|
makeflags: "--jobs=4 --output-sync=target" |
|
|