From 05e58cffe87617d5145105097f7ce436ed7979cc Mon Sep 17 00:00:00 2001 From: hiento09 <136591877+hiento09@users.noreply.github.com> Date: Tue, 23 Sep 2025 01:58:48 +0700 Subject: [PATCH] chore: add ci for web stag (#6550) --- ...r-web-ci.yml => jan-server-web-ci-dev.yml} | 4 +- ...cd-prod.yml => jan-server-web-ci-prod.yml} | 5 +- .github/workflows/jan-server-web-ci-stag.yml | 60 +++++++++++++++++++ Dockerfile | 3 + 4 files changed, 70 insertions(+), 2 deletions(-) rename .github/workflows/{jan-server-web-ci.yml => jan-server-web-ci-dev.yml} (92%) rename .github/workflows/{jan-server-web-cicd-prod.yml => jan-server-web-ci-prod.yml} (91%) create mode 100644 .github/workflows/jan-server-web-ci-stag.yml diff --git a/.github/workflows/jan-server-web-ci.yml b/.github/workflows/jan-server-web-ci-dev.yml similarity index 92% rename from .github/workflows/jan-server-web-ci.yml rename to .github/workflows/jan-server-web-ci-dev.yml index 921d77bee..95dd5f91f 100644 --- a/.github/workflows/jan-server-web-ci.yml +++ b/.github/workflows/jan-server-web-ci-dev.yml @@ -11,6 +11,8 @@ on: jobs: build-and-preview: runs-on: [ubuntu-24-04-docker] + env: + JAN_API_BASE: "https://api-dev.jan.ai/v1" permissions: pull-requests: write contents: write @@ -50,7 +52,7 @@ jobs: - name: Build docker image run: | - docker build -t ${{ steps.vars.outputs.FULL_IMAGE }} . + docker build --build-arg JAN_API_BASE=${{ env.JAN_API_BASE }} -t ${{ steps.vars.outputs.FULL_IMAGE }} . - name: Push docker image if: github.event_name == 'push' diff --git a/.github/workflows/jan-server-web-cicd-prod.yml b/.github/workflows/jan-server-web-ci-prod.yml similarity index 91% rename from .github/workflows/jan-server-web-cicd-prod.yml rename to .github/workflows/jan-server-web-ci-prod.yml index de1a07697..dda1f3672 100644 --- a/.github/workflows/jan-server-web-cicd-prod.yml +++ b/.github/workflows/jan-server-web-ci-prod.yml @@ -13,7 +13,7 @@ jobs: deployments: write pull-requests: write env: - JAN_API_BASE: "https://api.jan.ai/jan/v1" + JAN_API_BASE: "https://api.jan.ai/v1" GA_MEASUREMENT_ID: "G-YK53MX8M8M" CLOUDFLARE_PROJECT_NAME: "jan-server-web" steps: @@ -42,6 +42,9 @@ jobs: - name: Install dependencies run: make config-yarn && yarn install && yarn build:core && make build-web-app + env: + JAN_API_BASE: ${{ env.JAN_API_BASE }} + GA_MEASUREMENT_ID: ${{ env.GA_MEASUREMENT_ID }} - name: Publish to Cloudflare Pages Production uses: cloudflare/pages-action@v1 diff --git a/.github/workflows/jan-server-web-ci-stag.yml b/.github/workflows/jan-server-web-ci-stag.yml new file mode 100644 index 000000000..dda88390b --- /dev/null +++ b/.github/workflows/jan-server-web-ci-stag.yml @@ -0,0 +1,60 @@ +name: Jan Web Server build image and push to Harbor Registry + +on: + push: + branches: + - stag-web + pull_request: + branches: + - stag-web + +jobs: + build-and-preview: + runs-on: [ubuntu-24-04-docker] + env: + JAN_API_BASE: "https://api-stag.jan.ai/v1" + permissions: + pull-requests: write + contents: write + steps: + - name: Checkout source repo + uses: actions/checkout@v4 + + - name: Login to Harbor Registry + uses: docker/login-action@v3 + with: + registry: registry.menlo.ai + username: ${{ secrets.HARBOR_USERNAME }} + password: ${{ secrets.HARBOR_PASSWORD }} + + - name: Install dependencies + run: | + (type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \ + && sudo mkdir -p -m 755 /etc/apt/keyrings \ + && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ + && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ + && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ + && sudo mkdir -p -m 755 /etc/apt/sources.list.d \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ + && sudo apt update + sudo apt-get install -y jq gettext + + - name: Set image tag + id: vars + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + IMAGE_TAG="web:preview-${{ github.sha }}" + else + IMAGE_TAG="web:stag-${{ github.sha }}" + fi + echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT + echo "FULL_IMAGE=registry.menlo.ai/jan-server/${IMAGE_TAG}" >> $GITHUB_OUTPUT + + - name: Build docker image + run: | + docker build --build-arg JAN_API_BASE=${{ env.JAN_API_BASE }} -t ${{ steps.vars.outputs.FULL_IMAGE }} . + + - name: Push docker image + if: github.event_name == 'push' + run: | + docker push ${{ steps.vars.outputs.FULL_IMAGE }} diff --git a/Dockerfile b/Dockerfile index b06262ec5..236aa583c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,9 @@ # Stage 1: Build stage with Node.js and Yarn v4 FROM node:20-alpine AS builder +ARG JAN_API_BASE=https://api-dev.jan.ai/v1 +ENV JAN_API_BASE=$JAN_API_BASE + # Install build dependencies RUN apk add --no-cache \ make \