name: "SSH Deploy" description: "Deploy files to a remote server via SSH and rsync" inputs: host: description: "SSH server address" required: true port: description: "SSH port" required: false default: "22" username: description: "SSH login user" required: true key: description: "Private SSH key content" required: true source: description: "Local directory to deploy" required: false default: "." target: description: "Remote path on the server" required: true args: description: "Extra rsync flags (e.g. --delete)" required: false default: "" runs: using: "composite" steps: - name: Install dependencies shell: sh run: | if command -v apk > /dev/null 2>&1; then apk add --no-cache openssh-client rsync elif command -v apt-get > /dev/null 2>&1; then apt-get update && apt-get install -y --no-install-recommends openssh-client rsync else echo "Error: unsupported package manager" exit 1 fi - name: Deploy shell: sh run: sh "${{ github.action_path }}/entrypoint.sh" env: INPUT_HOST: ${{ inputs.host }} INPUT_PORT: ${{ inputs.port }} INPUT_USERNAME: ${{ inputs.username }} INPUT_KEY: ${{ inputs.key }} INPUT_SOURCE: ${{ inputs.source }} INPUT_TARGET: ${{ inputs.target }} INPUT_ARGS: ${{ inputs.args }} branding: icon: "upload-cloud" color: "blue"