Move gitweb build into its own path-filtered workflow
Only triggers on pushes to main when gitweb-related files change
(Dockerfile.gitweb, conf/*, the workflow itself). Removes the
build-gitweb job from the main CI workflow.

Assisted-by: GLM-5.1 via pi
change zsqsxynmlpvpzlwunnlzzmxnrnwtttxv
commit 996c45aadafd000db309ba95ba9180a62160f9ed
author Alpha Chen <alpha@kejadlen.dev>
date
parent lqvrmumo
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1426158..5e13731 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -83,38 +83,3 @@ jobs:
           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           STEPS_META_OUTPUTS_VERSION: ${{ steps.meta.outputs.version }}
         run: gh release create "${STEPS_META_OUTPUTS_VERSION}" --generate-notes
-
-  build-gitweb:
-    name: Build gitweb
-    needs: test
-    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
-    runs-on: ubuntu-latest
-    permissions:
-      packages: write # push container image to GHCR.
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-      - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
-      - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
-        with:
-          registry: ghcr.io
-          username: ${{ github.actor }}
-          password: ${{ secrets.GITHUB_TOKEN }}
-      - id: short-sha
-        run: echo "sha=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
-      - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
-        id: meta
-        with:
-          images: ghcr.io/${{ github.repository }}-gitweb
-          tags: |
-            type=raw,value={{date 'YYYYMMDD'}}-${{ steps.short-sha.outputs.sha }}
-      - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
-        with:
-          context: .
-          file: Dockerfile.gitweb
-          push: true
-          tags: ${{ steps.meta.outputs.tags }}
-          labels: ${{ steps.meta.outputs.labels }}
-          cache-from: type=gha
-          cache-to: type=gha,mode=max
diff --git a/.github/workflows/gitweb.yml b/.github/workflows/gitweb.yml
new file mode 100644
index 0000000..d2889c3
--- /dev/null
+++ b/.github/workflows/gitweb.yml
@@ -0,0 +1,50 @@
+name: Gitweb
+
+on:
+  push:
+    branches: [main]
+    paths:
+      - Dockerfile.gitweb
+      - conf/gitweb.conf
+      - conf/lighttpd.conf
+      - .github/workflows/gitweb.yml
+
+permissions: {}
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  build:
+    name: Build gitweb
+    runs-on: ubuntu-latest
+    permissions:
+      packages: write # push container image to GHCR.
+    steps:
+      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
+      - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
+      - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
+        with:
+          registry: ghcr.io
+          username: ${{ github.actor }}
+          password: ${{ secrets.GITHUB_TOKEN }}
+      - id: short-sha
+        run: echo "sha=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
+      - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
+        id: meta
+        with:
+          images: ghcr.io/${{ github.repository }}-gitweb
+          tags: |
+            type=raw,value={{date 'YYYYMMDD'}}-${{ steps.short-sha.outputs.sha }}
+      - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
+        with:
+          context: .
+          file: Dockerfile.gitweb
+          push: true
+          tags: ${{ steps.meta.outputs.tags }}
+          labels: ${{ steps.meta.outputs.labels }}
+          cache-from: type=gha
+          cache-to: type=gha,mode=max