feat(media): compose profile and CI job for the media sidecar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0138YqDj3ttfayRwuMKKrqVj
This commit is contained in:
parent
bd5f637501
commit
b4222ac5ec
@ -239,7 +239,9 @@ EVOO_COCKPIT_CORS_ORIGIN=
|
|||||||
|
|
||||||
# Optional Media Studio worker (local ffmpeg + ML sidecar, compose profile "media").
|
# Optional Media Studio worker (local ffmpeg + ML sidecar, compose profile "media").
|
||||||
# Without it, Media Studio stays hidden and media jobs are skipped.
|
# Without it, Media Studio stays hidden and media jobs are skipped.
|
||||||
# MEDIA_WORKER_URL=http://127.0.0.1:8790
|
# Compose: http://media-worker:8790. Bare-metal dev: http://127.0.0.1:8790.
|
||||||
|
# MEDIA_WORKER_URL=http://media-worker:8790
|
||||||
|
# At least 32 random characters.
|
||||||
# MEDIA_WORKER_TOKEN=REPLACE_WITH_RANDOM_TOKEN
|
# MEDIA_WORKER_TOKEN=REPLACE_WITH_RANDOM_TOKEN
|
||||||
# Private platform profiles that override the shipped ones. Keep outside the repo.
|
# Private platform profiles that override the shipped ones. Keep outside the repo.
|
||||||
# MEDIA_PROFILES_DIR=~/.evoo/media-profiles
|
# MEDIA_PROFILES_DIR=~/.evoo/media-profiles
|
||||||
|
|||||||
32
.github/workflows/media-worker.yml
vendored
Normal file
32
.github/workflows/media-worker.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
name: media-worker
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths: &media-worker-paths
|
||||||
|
- ".github/workflows/media-worker.yml"
|
||||||
|
- "infra/media-worker/**"
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
paths: *media-worker-paths
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: media-worker-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sidecar:
|
||||||
|
name: Media sidecar
|
||||||
|
runs-on: [self-hosted, evoo-ci, Linux]
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v5
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Build test image (CPU)
|
||||||
|
run: docker build --build-arg ACCELERATOR=cpu --target test -t rakazo/media-worker:ci-test infra/media-worker
|
||||||
|
- name: Pytest (offline, fake model backends)
|
||||||
|
run: docker run --rm --network none rakazo/media-worker:ci-test
|
||||||
|
- name: Build runtime image (CPU)
|
||||||
|
run: docker build --build-arg ACCELERATOR=cpu -t rakazo/media-worker:ci infra/media-worker
|
||||||
@ -129,6 +129,28 @@ services:
|
|||||||
data-init:
|
data-init:
|
||||||
condition: service_completed_successfully
|
condition: service_completed_successfully
|
||||||
|
|
||||||
|
media-worker:
|
||||||
|
# Optional Media Studio sidecar: `docker compose --profile media up`.
|
||||||
|
# No published port; the API and worker reach it as http://media-worker:8790.
|
||||||
|
profiles: ["media"]
|
||||||
|
build:
|
||||||
|
context: ../media-worker
|
||||||
|
args:
|
||||||
|
ACCELERATOR: ${MEDIA_ACCELERATOR:-cpu}
|
||||||
|
image: rakazo/media-worker:local
|
||||||
|
environment:
|
||||||
|
MEDIA_WORKER_HOST: "0.0.0.0"
|
||||||
|
MEDIA_WORKER_PORT: "8790"
|
||||||
|
MEDIA_WORKER_TOKEN: ${MEDIA_WORKER_TOKEN:?Set MEDIA_WORKER_TOKEN in .env}
|
||||||
|
MEDIA_ROOT: /data/media
|
||||||
|
MEDIA_MODELS_DIR: /models
|
||||||
|
HTTP_PROXY: ${HTTP_PROXY:-${http_proxy:-}}
|
||||||
|
HTTPS_PROXY: ${HTTPS_PROXY:-${https_proxy:-}}
|
||||||
|
NO_PROXY: ${NO_PROXY:-${no_proxy:-}}
|
||||||
|
volumes:
|
||||||
|
- ../../data/media:/data/media
|
||||||
|
- media-models:/models
|
||||||
|
|
||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: ../..
|
context: ../..
|
||||||
@ -144,4 +166,5 @@ services:
|
|||||||
- api
|
- api
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
media-models:
|
||||||
pgdata:
|
pgdata:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user