From 8a042ed2016e865f2fd7924e6a6891ad5611c6e2 Mon Sep 17 00:00:00 2001 From: viettranx Date: Sun, 5 Apr 2026 09:26:22 +0700 Subject: [PATCH] ci: remove redundant docker-publish workflow release.yaml already builds and pushes Docker images (4 backend variants + web) to GHCR and Docker Hub when semantic-release creates a new version. docker-publish.yaml triggered on v*.*.* tags, causing duplicate Docker builds on every release. --- .github/workflows/docker-publish.yaml | 151 -------------------------- 1 file changed, 151 deletions(-) delete mode 100644 .github/workflows/docker-publish.yaml diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml deleted file mode 100644 index 67817476..00000000 --- a/.github/workflows/docker-publish.yaml +++ /dev/null @@ -1,151 +0,0 @@ -name: Publish Docker Images - -on: - push: - tags: - - "v*.*.*" - -env: - GHCR_IMAGE: ghcr.io/${{ github.repository }} - DOCKERHUB_IMAGE: digitop/goclaw - -permissions: - contents: read - packages: write - -jobs: - build-and-push: - runs-on: ubuntu-latest - strategy: - matrix: - include: - # Base: backend API-only, no web UI, no runtimes - - variant: base - suffix: "-base" - enable_otel: "false" - enable_embedui: "false" - enable_python: "false" - enable_full_skills: "false" - # Latest: backend + embedded web UI + Python - - variant: latest - suffix: "" - enable_otel: "false" - enable_embedui: "true" - enable_python: "true" - enable_full_skills: "false" - # Full: all runtimes + skills pre-installed - - variant: full - suffix: "-full" - enable_otel: "false" - enable_embedui: "true" - enable_python: "true" - enable_full_skills: "true" - # OTel: latest + OpenTelemetry tracing - - variant: otel - suffix: "-otel" - enable_otel: "true" - enable_embedui: "true" - enable_python: "true" - enable_full_skills: "false" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: | - ${{ env.GHCR_IMAGE }} - ${{ env.DOCKERHUB_IMAGE }} - tags: | - type=semver,pattern={{version}},suffix=${{ matrix.suffix }} - type=semver,pattern={{major}}.{{minor}},suffix=${{ matrix.suffix }} - type=raw,value=latest,enable=${{ matrix.suffix == '' }},suffix= - type=raw,value=${{ matrix.variant }},enable=${{ matrix.suffix != '' }} - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - ENABLE_OTEL=${{ matrix.enable_otel }} - ENABLE_EMBEDUI=${{ matrix.enable_embedui }} - ENABLE_PYTHON=${{ matrix.enable_python }} - ENABLE_FULL_SKILLS=${{ matrix.enable_full_skills }} - VERSION=${{ github.ref_name }} - cache-from: type=gha,scope=${{ matrix.variant }} - cache-to: type=gha,mode=max,scope=${{ matrix.variant }} - - build-and-push-web: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: | - ${{ env.GHCR_IMAGE }}-web - ${{ env.DOCKERHUB_IMAGE }}-web - tags: | - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=raw,value=latest - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: ui/web - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha,scope=web - cache-to: type=gha,mode=max,scope=web