Skip to content

ci: build all-in-one image from the local-mode branch to publish :latest #1

ci: build all-in-one image from the local-mode branch to publish :latest

ci: build all-in-one image from the local-mode branch to publish :latest #1

Workflow file for this run

name: docker-allinone
# Build and publish the ALL-IN-ONE image (engine + bundled Postgres + web UI)
# so anyone can `docker run` Vectorless with just an LLM key.
#
# Publishes to Docker Hub AND GitHub Container Registry:
# docker.io/<DOCKERHUB_USERNAME>/vectorless:latest|sha-<short>|vX.Y.Z
# ghcr.io/hallelx2/vectorless:latest|sha-<short>|vX.Y.Z
#
# Requires two repo secrets for the Docker Hub push:
# DOCKERHUB_USERNAME — your Docker Hub account/namespace
# DOCKERHUB_TOKEN — a Docker Hub access token with Read/Write/Delete scope
# (GHCR uses the built-in GITHUB_TOKEN — no extra secret.)
on:
workflow_dispatch: {} # run on demand once this lands on the default branch
push:
# TEMPORARY: build from the local-mode feature branch so we can publish a
# usable :latest before this merges to main. After merge, drop the branch
# entry and rely on workflow_dispatch + tags (latest then tracks default).
branches: ["halleluyaholudele/hal-186-engine-zero-config-local-mode"]
tags: ["v*.*.*"]
permissions:
contents: read
packages: write # push to ghcr.io
jobs:
publish:
name: build + push all-in-one
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract tags + labels
id: meta
uses: docker/metadata-action@v5
with:
images: |
docker.io/${{ secrets.DOCKERHUB_USERNAME }}/vectorless
ghcr.io/${{ github.repository_owner }}/vectorless
tags: |
type=raw,value=latest
type=ref,event=tag
type=sha,prefix=sha-,format=short
- name: Build + push
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.allinone
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION=${{ github.ref_name }}
cache-from: type=gha
cache-to: type=gha,mode=max