This is an automated email from the ASF dual-hosted git repository.

xintongsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git

commit 708206544a3cd858f67447f7865f13ae777aa27e
Author: youjin <[email protected]>
AuthorDate: Mon May 25 10:06:43 2026 +0800

    [ci] Add local rsync-deployments composite action
    
    Add a local composite action under .github/actions/rsync-deployments
    that wraps rsync-over-SSH for documentation deployment. Ported from
    apache/flink-kubernetes-operator#1035 with MIT attribution preserved.
    
    This action is intended to replace the third-party
    burnett01/rsync-deployments action, which is not in the ASF
    allowed-actions list. Locally-defined actions are not subject to
    that allow-list, so they can be used safely in ASF repositories.
    
    This commit is purely additive (no existing files modified) and can be
    cherry-picked cleanly to release branches so the nightly docs matrix
    job can resolve the local action when checking out those branches.
---
 .github/actions/rsync-deployments/LICENSE    | 26 +++++++++++
 .github/actions/rsync-deployments/action.yml | 66 ++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+)

diff --git a/.github/actions/rsync-deployments/LICENSE 
b/.github/actions/rsync-deployments/LICENSE
new file mode 100644
index 00000000..f199b801
--- /dev/null
+++ b/.github/actions/rsync-deployments/LICENSE
@@ -0,0 +1,26 @@
+The local composite action at .github/actions/rsync-deployments/action.yml
+was inspired by the rsync-deployments GitHub Action, which is distributed
+under the MIT License reproduced below.
+
+MIT License
+
+Copyright (c) 2019-2022 Contention
+Copyright (c) 2019-2025 Burnett01
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/.github/actions/rsync-deployments/action.yml 
b/.github/actions/rsync-deployments/action.yml
new file mode 100644
index 00000000..4ac771bd
--- /dev/null
+++ b/.github/actions/rsync-deployments/action.yml
@@ -0,0 +1,66 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This implementation took inspiration from 
https://github.com/Burnett01/rsync-deployments/blob/7.1.0/action.yml
+name: Rsync Deploy (local)
+description: Upload a folder to a single remote destination via rsync over SSH.
+inputs:
+  switches:
+    description: rsync switches
+    required: false
+    default: "--archive --compress"
+  path:
+    description: Local source directory
+    required: true
+  remote_path:
+    description: Remote destination directory
+    required: true
+  remote_host:
+    description: SSH host
+    required: true
+  remote_port:
+    description: SSH port
+    required: false
+    default: "22"
+  remote_user:
+    description: SSH username
+    required: true
+  remote_key:
+    description: SSH private key (OpenSSH/PEM)
+    required: true
+runs:
+  using: composite
+  steps:
+    - name: rsync via ssh-agent
+      shell: bash
+      run: |
+        set -euo pipefail
+
+        # Start agent and load the key
+        eval "$(ssh-agent -s)"
+        ssh-add - <<< "${{ inputs.remote_key }}"
+
+        # SSH command with host key checking disabled (matches your reference 
impl)
+        RSH="ssh -o StrictHostKeyChecking=no -p ${{ inputs.remote_port }}"
+
+        # Resolve paths and DSN
+        LOCAL_PATH="$GITHUB_WORKSPACE/${{ inputs.path }}"
+        DSN="${{ inputs.remote_user }}@${{ inputs.remote_host }}"
+
+        # Deploy
+        sh -c "rsync ${{ inputs.switches }} -e '$RSH' $LOCAL_PATH $DSN:${{ 
inputs.remote_path }}"
+
+        # Cleanup identities from the agent
+        ssh-add -D || true

Reply via email to