From 2e10ceee0ebc1b0a451c39174217cd93da30d69e Mon Sep 17 00:00:00 2001 From: Yash Date: Thu, 29 Jan 2026 00:15:19 +0530 Subject: [PATCH 1/3] feat: Add BASE_PATH support with -base image variant --- .github/workflows/cd.yml | 42 ++++++++++++++++++++++++++-------------- Dockerfile | 4 +++- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 24761faf..5ec4abcb 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -23,6 +23,15 @@ jobs: permissions: contents: read packages: write + strategy: + matrix: + include: + - type: standard + base_path: "" + suffix: "" + - type: base + base_path: "/umami" + suffix: "-base" steps: - uses: actions/checkout@v5 @@ -55,6 +64,7 @@ jobs: REF_TYPE="${{ github.ref_type }}" REF_NAME="${{ github.ref_name }}" INCLUDE_LATEST="${{ github.event.inputs.include_latest }}" + SUFFIX="${{ matrix.suffix }}" # Determine version source if [[ -n "$INPUT" ]]; then @@ -74,30 +84,30 @@ jobs: if [[ "$VERSION" == *-* ]]; then # prerelease: only version tag - GHCR_TAGS="ghcr.io/${{ github.repository }}:$VERSION" - DOCKER_TAGS="umamisoftware/umami:$VERSION" + GHCR_TAGS="ghcr.io/${{ github.repository }}:$VERSION$SUFFIX" + DOCKER_TAGS="umamisoftware/umami:$VERSION$SUFFIX" else # stable release: version + hierarchy - GHCR_TAGS="ghcr.io/${{ github.repository }}:$VERSION" - GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:${MAJOR}.${MINOR}" - GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:${MAJOR}" - GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:postgresql-latest" + GHCR_TAGS="ghcr.io/${{ github.repository }}:$VERSION$SUFFIX" + GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:${MAJOR}.${MINOR}$SUFFIX" + GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:${MAJOR}$SUFFIX" + GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:postgresql-latest$SUFFIX" - DOCKER_TAGS="umamisoftware/umami:$VERSION" - DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:${MAJOR}.${MINOR}" - DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:${MAJOR}" - DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:postgresql-latest" + DOCKER_TAGS="umamisoftware/umami:$VERSION$SUFFIX" + DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:${MAJOR}.${MINOR}$SUFFIX" + DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:${MAJOR}$SUFFIX" + DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:postgresql-latest$SUFFIX" # Add latest tag based on trigger and input if [[ "$REF_TYPE" == "tag" ]] || [[ "$INCLUDE_LATEST" == "true" ]]; then - GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:latest" - DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:latest" + GHCR_TAGS="$GHCR_TAGS,ghcr.io/${{ github.repository }}:latest$SUFFIX" + DOCKER_TAGS="$DOCKER_TAGS,umamisoftware/umami:latest$SUFFIX" fi fi else # Non-tag build (e.g. from main branch) - GHCR_TAGS="ghcr.io/${{ github.repository }}:${REF_NAME}" - DOCKER_TAGS="umamisoftware/umami:${REF_NAME}" + GHCR_TAGS="ghcr.io/${{ github.repository }}:${REF_NAME}$SUFFIX" + DOCKER_TAGS="umamisoftware/umami:${REF_NAME}$SUFFIX" fi echo "ghcr_tags=$GHCR_TAGS" >> $GITHUB_OUTPUT @@ -112,6 +122,8 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.compute.outputs.ghcr_tags }} + build-args: | + BASE_PATH=${{ matrix.base_path }} cache-from: type=gha cache-to: type=gha,mode=max @@ -123,5 +135,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.compute.outputs.docker_tags }} + build-args: | + BASE_PATH=${{ matrix.base_path }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/Dockerfile b/Dockerfile index 1282fd86..a193f143 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ COPY --from=deps /app/node_modules ./node_modules COPY . . COPY docker/middleware.ts ./src -ARG BASE_PATH +ARG BASE_PATH="" ENV BASE_PATH=$BASE_PATH ENV NEXT_TELEMETRY_DISABLED=1 @@ -30,10 +30,12 @@ WORKDIR /app ARG PRISMA_VERSION="6.19.0" ARG NODE_OPTIONS +ARG BASE_PATH="" ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV NODE_OPTIONS=$NODE_OPTIONS +ENV BASE_PATH=$BASE_PATH RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs From 5fb550df5df8810bb75324dc4778d56cd2d8300f Mon Sep 17 00:00:00 2001 From: Yash Date: Thu, 29 Jan 2026 00:21:50 +0530 Subject: [PATCH 2/3] Update .github/workflows/cd.yml Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- .github/workflows/cd.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 5ec4abcb..15d0c245 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -124,8 +124,8 @@ jobs: tags: ${{ steps.compute.outputs.ghcr_tags }} build-args: | BASE_PATH=${{ matrix.base_path }} - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: type=gha,scope=${{ matrix.type }} + cache-to: type=gha,mode=max,scope=${{ matrix.type }} - name: Build and push to Docker Hub if: github.repository == 'umami-software/umami' From 1fa9c9dae1cef8803f18cf51648d8f7f56a7e34b Mon Sep 17 00:00:00 2001 From: Yash Date: Thu, 29 Jan 2026 00:22:00 +0530 Subject: [PATCH 3/3] Update .github/workflows/cd.yml Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- .github/workflows/cd.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 15d0c245..296dda22 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -137,5 +137,5 @@ jobs: tags: ${{ steps.compute.outputs.docker_tags }} build-args: | BASE_PATH=${{ matrix.base_path }} - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: type=gha,scope=${{ matrix.type }} + cache-to: type=gha,mode=max,scope=${{ matrix.type }}