From c318cac14951ba1df59401e048941baa710a412c Mon Sep 17 00:00:00 2001 From: Lia Date: Thu, 24 Sep 2026 23:54:32 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=A5=20ci:=20Build=20Canary=20Docker=20?= =?UTF-8?q?Images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/canary-images.yml | 53 +++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/canary-images.yml diff --git a/.github/workflows/canary-images.yml b/.github/workflows/canary-images.yml new file mode 100644 index 00000000000..159c6078f6d --- /dev/null +++ b/.github/workflows/canary-images.yml @@ -0,0 +1,53 @@ +name: Docker Canary Images Build + +on: + workflow_dispatch: + push: + branches: + - canary + paths: + # Include the workflow itself so its first merge onto canary builds that commit. + - '.github/workflows/canary-images.yml' + - '.github/workflows/docker-publish.yml' + - '.env.example' + - 'api/**' + - 'client/**' + - 'config/**' + - 'skill/**' + - 'packages/**' + - 'package.json' + - 'package-lock.json' + - 'Dockerfile' + - 'Dockerfile.multi' + - '.dockerignore' + - '!**.md' + # Deployment skills are Markdown the image ships and reads at runtime. + - 'skill/**/*.md' + - '!skill/README.md' + +permissions: + contents: read + packages: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + publish: + # A manual dispatch must not publish another branch under canary tags. + if: github.ref == 'refs/heads/canary' + uses: ./.github/workflows/docker-publish.yml + with: + images: >- + [{"target":"api-build","file":"Dockerfile.multi","image_name":"librechat-canary-api"}, + {"target":"node","file":"Dockerfile","image_name":"librechat-canary"}] + tag_suffixes: | + ${{ github.sha }} + latest + checkout_ref: ${{ github.sha }} + build_branch: canary + secrets: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + LEGACY_GHCR_TOKEN: ${{ secrets.LEGACY_GHCR_TOKEN }}