[VOL-5495] Add docs release GHA workflow

Signed-off-by: Eric Ball <eball@linuxfoundation.org>
Change-Id: I0551ab9836e97ad863cac051a851ccd4ff48470c
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..785c010
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,67 @@
+---
+# SPDX-License-Identifier: Apache-2.0
+# Copyright 2026 The Linux Foundation
+
+name: voltha-docsrelease
+
+# yamllint disable-line rule:truthy
+on:
+  workflow_dispatch:
+  push:
+    branches:
+      - master
+      - main
+
+permissions:
+  contents: read
+
+jobs:
+  build-and-publish:
+    runs-on: ubuntu-latest
+
+    # Mirrors the values previously defined for the 'sync-dir' job in
+    # ci-management/jjb/repos/voltha-docs.yaml
+    env:
+      BUILD_OUTPUT_PATH: "_build/multiversion/"
+      SYNC_TARGET_USER: "jenkins"
+      SYNC_TARGET_SERVER: "static.lfbroadband.org"
+      SYNC_TARGET_PATH: "/srv/sites/docs.voltha.org/"
+
+    steps:
+      - name: Checkout repository
+        # yamllint disable-line rule:line-length
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
+        with:
+          # Full history, branches and tags are required by
+          # sphinx-multiversion to build every documented version
+          fetch-depth: 0
+
+      - name: Configure Python
+        # yamllint disable-line rule:line-length
+        uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
+        with:
+          python-version: "3.10"
+
+      - name: Build multiversion documentation
+        env:
+          # Makefile uses GERRIT_BRANCH to identify the current branch
+          GERRIT_BRANCH: ${{ github.ref_name }}
+        run: make multiversion
+
+      - name: Configure SSH access to docs server
+        env:
+          SSH_PRIVATE_KEY: ${{ secrets.STATIC_LFBB_JENKINS_SSH_KEY }}
+        run: |
+          set -eu
+          mkdir -p ~/.ssh
+          chmod 700 ~/.ssh
+          printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
+          chmod 600 ~/.ssh/id_rsa
+          ssh-keyscan -H "$SYNC_TARGET_SERVER" >> ~/.ssh/known_hosts 2>/dev/null
+
+      - name: Sync documentation to docs server
+        run: |
+          set -eu -o pipefail
+          rsync -rvzh --delete-after --exclude=.git \
+            "$BUILD_OUTPUT_PATH" \
+            "${SYNC_TARGET_USER}@${SYNC_TARGET_SERVER}:${SYNC_TARGET_PATH}"