Skip to content

chore: bump bmad-crew image to sha-e42fd10 #47

chore: bump bmad-crew image to sha-e42fd10

chore: bump bmad-crew image to sha-e42fd10 #47

Workflow file for this run

name: build-image
# Builds and pushes TWO container images to GHCR on every push to main/master
# or on a version tag, using the repo-scoped GITHUB_TOKEN (no personal PAT).
#
# ghcr.io/isitobservable/bmad-crew — FastAPI backend (bmad-crew/)
# ghcr.io/isitobservable/bmad-crew-ui — Next.js + CopilotKit frontend (ui/)
#
# Both jobs run on every push; GHA layer cache keeps reruns fast.
on:
push:
branches: [main, master]
tags: ['v*']
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
# ── Backend: FastAPI BMAD crew ──────────────────────────────────────────────
build-backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Derive backend image tags
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/isitobservable/bmad-crew
tags: |
type=raw,value=latest
type=raw,value=1.0.0
type=sha
type=semver,pattern={{version}}
- name: Build and push backend
uses: docker/build-push-action@v6
with:
# Build context is repo root; Dockerfile COPYs from bmad-crew/.
context: .
file: Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
# ── Frontend: Next.js + CopilotKit UI ───────────────────────────────────────
build-ui:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Derive UI image tags
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/isitobservable/bmad-crew-ui
tags: |
type=raw,value=latest
type=raw,value=1.0.0
type=sha
type=semver,pattern={{version}}
- name: Build and push UI
uses: docker/build-push-action@v6
with:
# Build context is ui/ — Dockerfile lives there and COPYs relative paths.
context: ui
file: ui/Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
# Bake /api/crew as the browser-side base URL so ALL fetch/EventSource
# calls from the browser use relative paths that Next.js rewrites
# server-side to the FastAPI pod (BMAD_CREW_URL in the ConfigMap).
# The image is cluster-portable: no rebuild when the cluster IP changes.
# Override only if you expose FastAPI directly to the browser.
NEXT_PUBLIC_BMAD_CREW_URL=/api/crew