Skip to content

Release version v0.14.1 (#897) #195

Release version v0.14.1 (#897)

Release version v0.14.1 (#897) #195

name: Build realtime AI streamdiffusion docker image
on:
pull_request:
paths:
- "live/streamdiffusion/**"
- "runner/app/**"
- "runner/pyproject.toml"
- "runner/uv.lock"
- "runner/VERSION"
push:
branches:
- main
tags:
- '*'
paths:
- "live/streamdiffusion/**"
- "runner/app/**"
- "runner/pyproject.toml"
- "runner/uv.lock"
- "runner/VERSION"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ !((github.ref_type == 'branch' && github.ref_name == 'main') || github.ref_type == 'tag') }}
jobs:
build:
name: Build pipeline images
runs-on: [self-hosted, linux, amd64]
strategy:
matrix:
include:
# Base image: empty SUBVARIANT, builds and can run all models (for public operators)
- subtype: ""
# sdturbo and sd15* variants use the same models bundle and can be switched interchangeably
- subtype: "sdturbo"
- subtype: "sd15"
- subtype: "sd15-v2v"
# sdxl* variants use an SDXL-only models bundle
- subtype: "sdxl"
- subtype: "sdxl-faceid"
- subtype: "sdxl-v2v"
env:
DOCKER_SUFFIX: ${{ matrix.subtype && format('-{0}', matrix.subtype) || '' }}
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Extract metadata for app image
id: meta
uses: docker/metadata-action@v5
with:
images: livepeer/ai-runner
tags: |
type=raw,value=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }},enable={{is_default_branch}}
type=sha,prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-sha-
type=sha,format=long,prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-sha-
type=ref,event=pr,prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-pr-
type=ref,event=tag,prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-
type=ref,event=branch,prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-
type=raw,value=latest,enable={{is_default_branch}},prefix=live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-
- name: Get version information (for docker build tag)
id: version
run: |
echo "version=$(bash runner/print_version.sh)" >> "$GITHUB_OUTPUT"
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.CI_DOCKERHUB_USERNAME }}
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}
- name: Build and push pipeline app image
id: build-app
uses: docker/build-push-action@v6
with:
context: .
provenance: mode=max
sbom: true
push: true
file: live/streamdiffusion/Dockerfile
build-args: |
GIT_SHA=${{ (github.ref_type == 'tag' && github.ref_name) || (github.event.pull_request.head.sha || github.sha) }}
VERSION=${{ steps.version.outputs.version }}
SUBVARIANT=${{ matrix.subtype }}
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
annotations: ${{ steps.meta.outputs.annotations }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=livepeer/ai-runner:live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-dockerbuildcache
cache-to: type=registry,ref=livepeer/ai-runner:live-app-streamdiffusion${{ env.DOCKER_SUFFIX }}-dockerbuildcache,mode=max
notify:
name: Notify new build upload
needs: build
runs-on: [self-hosted, linux, amd64]
steps:
- name: Notify new build upload
run: curl -X POST https://holy-bread-207a.livepeer.workers.dev