Skip to content

Push video gen images to personal GHCR (conalmullan) #4

Push video gen images to personal GHCR (conalmullan)

Push video gen images to personal GHCR (conalmullan) #4

name: Build Video Generation Workers
on:
push:
branches: [experiment/video-generation]
paths:
- 'docker/runpod-qwen-edit/**'
- 'docker/runpod-wan-i2v/**'
- '.github/workflows/build-videogen-workers.yml'
workflow_dispatch:
inputs:
build_qwen_edit:
description: 'Build qwen-edit image'
type: boolean
default: true
build_wan_i2v:
description: 'Build wan-i2v image'
type: boolean
default: false
env:
REGISTRY: ghcr.io
# Push to personal GHCR (conalmullan) for easier visibility control
QWEN_IMAGE: ghcr.io/conalmullan/video-toolkit-qwen-edit
WAN_IMAGE: ghcr.io/conalmullan/video-toolkit-wan-i2v
jobs:
build-qwen-edit:
if: ${{ github.event_name == 'push' || github.event.inputs.build_qwen_edit == 'true' }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Free disk space
run: |
echo "Before cleanup:"
df -h
# Remove unnecessary tools to free ~30GB
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune -af
echo "After cleanup:"
df -h
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push qwen-edit
uses: docker/build-push-action@v5
with:
context: docker/runpod-qwen-edit
platforms: linux/amd64
push: true
tags: |
${{ env.QWEN_IMAGE }}:latest
${{ env.QWEN_IMAGE }}:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-wan-i2v:
if: ${{ github.event.inputs.build_wan_i2v == 'true' }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Free disk space
run: |
echo "Before cleanup:"
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune -af
echo "After cleanup:"
df -h
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push wan-i2v
uses: docker/build-push-action@v5
with:
context: docker/runpod-wan-i2v
platforms: linux/amd64
push: true
tags: |
${{ env.WAN_IMAGE }}:latest
${{ env.WAN_IMAGE }}:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max