Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 44 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,50 @@ env:
PYTHON_VERSION: "3.12"

jobs:
# GA images build for release tags (vX.Y.Z), never for RC tags (build_rc.yml
# owns those). This job also enforces "the tag is on main": we can't use
# github.event.base_ref for that — it is empty for a tag pushed to a
# branch-protected main (which only receives PR-merge commits, not client
# pushes), so the old base_ref guard silently skipped every release build.
# Instead we verify reachability from origin/main explicitly and fail loud.
verify-tag:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-rc.')
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Comment thread
andyne13 marked this conversation as resolved.
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
# Tag name and SHA are passed as env data, never interpolated into the
# script body: ${{ }} expands before the shell runs, and git permits
# ; $ ` " | & in ref names — so a crafted tag could otherwise execute
# arbitrary code in this privileged publishing workflow.
- name: Verify this is an exact GA release tag on main
env:
TAG_NAME: ${{ github.ref_name }}
TAG_SHA: ${{ github.sha }}
run: |
# The job-level `if` only filters well-formed `-rc.` tags (owned by
# build_rc.yml). Anything else reaching here must be an exact GA tag:
# a near-miss like `v1.2.3-rc1` matches neither workflow's intent and
# would otherwise publish a prerelease as GA and move `latest`.
if ! printf '%s' "$TAG_NAME" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "::error::$TAG_NAME is not an exact GA release tag (vMAJOR.MINOR.PATCH) — refusing to publish GA images."
exit 1
fi
git fetch --no-tags origin main
if git merge-base --is-ancestor "$TAG_SHA" FETCH_HEAD; then
echo "OK: $TAG_NAME ($TAG_SHA) is an exact GA tag on main"
else
echo "::error::$TAG_NAME is not on main — refusing to publish GA images."
exit 1
fi

build-and-push-image:
needs: verify-tag
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') && github.event.base_ref == 'refs/heads/main'
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -68,8 +109,8 @@ jobs:
cache-to: type=gha,mode=max

build-and-push-image-ray:
needs: verify-tag
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') && github.event.base_ref == 'refs/heads/main'
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -116,8 +157,8 @@ jobs:
cache-to: type=gha,mode=max

build-and-push-image-admin-ui:
needs: verify-tag
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') && github.event.base_ref == 'refs/heads/main'
permissions:
contents: read
packages: write
Expand Down
4 changes: 2 additions & 2 deletions infra/charts/openrag-stack/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.5.1
version: 0.5.2

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "2.0.0"
appVersion: "2.0.1"

dependencies:
- name: kuberay-operator
Expand Down
6 changes: 3 additions & 3 deletions infra/charts/openrag-stack/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ray:
image:
repository: ghcr.io/linagora/openrag-ray
# Pin to a release tag (ideally a digest) for reproducible deploys.
tag: "1.1.13"
tag: "v2.0.1"

# === PostgreSQL (bitnami) ===
postgresql:
Expand Down Expand Up @@ -262,7 +262,7 @@ adminUi:
repository: linagoraai/openrag-admin-ui
# Pin to a release tag (ideally a digest) for reproducible deploys. Must be a
# build from infra/docker/ui.Dockerfile (nginx-unprivileged, listens :8080).
tag: "v2.0.0"
tag: "v2.0.1"
imagePullPolicy: IfNotPresent
replicaCount: 1
service:
Expand All @@ -276,7 +276,7 @@ openrag:
image:
repository: linagoraai/openrag
# Pin to a release tag (ideally a digest) for reproducible deploys.
tag: "1.1.13"
tag: "v2.0.1"
service:
type: ClusterIP
port: 8080
Expand Down
4 changes: 2 additions & 2 deletions infra/compose/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ x-openrag-env: &openrag_env
FONT_PATH: ${FONT_PATH:-/app/data/fonts/GoNotoCurrent-Regular.ttf}

x-openrag: &openrag_template
image: linagoraai/openrag:v2.0.0
image: linagoraai/openrag:v2.0.1
# Start as root so entrypoint.sh can grant GID-0 write on the bind-mounted
# writable dirs (data/, logs/, the HF cache) — which a non-root container
# can't write when Docker auto-creates them root-owned — then it immediately
Expand Down Expand Up @@ -113,7 +113,7 @@ x-vllm: &vllm_template
services:
# ── Admin UI (React SPA + nginx, same-origin reverse proxy to the API) ──
admin-ui:
image: linagoraai/openrag-admin-ui:v2.0.0
image: linagoraai/openrag-admin-ui:v2.0.1
build:
context: ../..
dockerfile: infra/docker/ui.Dockerfile
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "openrag"
version = "2.0.0"
version = "2.0.1"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading