diff --git a/file-transfer/action.yml b/file-transfer/action.yml new file mode 100644 index 0000000..c71696d --- /dev/null +++ b/file-transfer/action.yml @@ -0,0 +1,45 @@ +name: 파일 전송 +description: 로컬 파일 또는 디렉터리를 원격 서버로 전송 + +inputs: + host: + required: true + port: + required: false + default: "22" + user: + required: true + key-path: + required: false + default: "" + source: + required: true + target: + required: true + recursive: + required: false + default: "true" + +runs: + using: composite + steps: + - shell: bash + run: | + set -eu + + KEY_PATH="${{ inputs.key-path }}" + if [ -z "$KEY_PATH" ]; then + KEY_PATH="$HOME/.ssh/deploy_key" + fi + + SCP_OPTIONS="" + if [ "${{ inputs.recursive }}" = "true" ]; then + SCP_OPTIONS="-r" + fi + + scp $SCP_OPTIONS \ + -P "${{ inputs.port }}" \ + -i "$KEY_PATH" \ + -o IdentitiesOnly=yes \ + "${{ inputs.source }}" \ + "${{ inputs.user }}@${{ inputs.host }}:${{ inputs.target }}"