Add Gitea release workflow; pull image from registry by default

CI builds and pushes the comfyui-nvidia image to the Gitea container
registry on every v* tag, mirroring the figment release workflow. Compose
now references the registry image (with build context kept for local
iteration) and the docs reflect the pull-by-default flow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 10:26:06 -05:00
parent a73aa4a38a
commit 09fcec7c07
4 changed files with 76 additions and 6 deletions

View File

@@ -0,0 +1,50 @@
name: release
# Tag a commit as v* (e.g. v0.1.0) to build and publish the comfyui-nvidia
# image to the Gitea container registry. The deployed compose file
# references this image, so a successful release is what makes a new build
# reachable to deployers.
on:
push:
tags:
- "v*"
jobs:
build-docker:
name: Build & Push Docker Image
runs-on: ubuntu-latest
container:
image: ghcr.io/catthehacker/ubuntu:act-latest
env:
REGISTRY: git.anomalous.dev
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract version
id: version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Compute image name
id: meta
run: |
owner=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
echo "image=${{ env.REGISTRY }}/${owner}/comfyui-nvidia" >> "$GITHUB_OUTPUT"
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.TOKEN_GITEA }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: true
tags: |
${{ steps.meta.outputs.image }}:${{ steps.version.outputs.version }}
${{ steps.meta.outputs.image }}:latest

View File

@@ -22,9 +22,14 @@ setup.
```sh
cp .env.example .env
# edit .env — set OPEN_WEBUI_SECRET_KEY at minimum
docker compose up -d --build
docker compose up -d
```
`compose up` pulls the prebuilt ComfyUI image from
`git.anomalous.dev/alphacentri/comfyui-nvidia` (CI publishes it on every
`v*` tag — see [.gitea/workflows/release.yml](.gitea/workflows/release.yml)).
Use `docker compose build` to rebuild locally when iterating on the Dockerfile.
Then drop a checkpoint into the `comfyui-models` volume and finish the Open
WebUI ComfyUI configuration. Full walkthrough in [SETUP.md](SETUP.md).

View File

@@ -32,16 +32,27 @@ Edit `.env`:
- `OPEN_WEBUI_SECRET_KEY` — generate with `openssl rand -hex 32`. Keep stable;
rotating it logs every user out.
## 3. Build and start
## 3. Start the stack
```sh
docker compose up -d --build
docker compose up -d
```
First build pulls the CUDA base, PyTorch wheels, and ComfyUI source — expect
several minutes. `docker compose logs -f comfyui` should end with a line like
This pulls the prebuilt `comfyui-nvidia` image from the Gitea registry (CI
publishes it on every `v*` tag) plus the upstream Open WebUI image, then
brings both up. `docker compose logs -f comfyui` should end with a line like
`To see the GUI go to: http://0.0.0.0:8188`.
To build the image locally instead (e.g. while iterating on the Dockerfile):
```sh
docker compose build comfyui
docker compose up -d
```
First local build pulls the CUDA base, PyTorch wheels, and ComfyUI source —
expect several minutes.
Health-check both services:
```sh

View File

@@ -25,10 +25,14 @@ volumes:
services:
comfyui:
# CI (.gitea/workflows/release.yml) builds and pushes this image on tag.
# `build:` is kept so `docker compose build` still works locally — useful
# when iterating on the Dockerfile without going through CI.
image: git.anomalous.dev/alphacentri/comfyui-nvidia:${COMFYUI_IMAGE_TAG:-latest}
pull_policy: always
build:
context: .
dockerfile: Dockerfile
image: comfyui-nvidia:local
container_name: comfyui
restart: unless-stopped
networks: [comfyui-net]