name: 원격 명령어 실행 description: 원격 서버에서 명령어를 실행 inputs: host: required: true port: required: false default: "22" user: required: true key-path: required: false default: "" command: required: true runs: using: composite steps: - shell: bash run: | set -eu SUDO="" [ "$(id -u)" -ne 0 ] && SUDO="sudo" if ! command -v ssh >/dev/null 2>&1; then if command -v apt-get >/dev/null 2>&1; then $SUDO apt-get update $SUDO apt-get install -y --no-install-recommends openssh-client else echo "ssh가 없습니다. openssh-client를 설치한 러너가 필요합니다." exit 1 fi fi KEY_PATH="${{ inputs.key-path }}" if [ -z "$KEY_PATH" ]; then KEY_PATH="$HOME/.ssh/deploy_key" fi ssh -p "${{ inputs.port }}" -i "$KEY_PATH" \ -o IdentitiesOnly=yes \ "${{ inputs.user }}@${{ inputs.host }}" \ 'bash -se' << 'EOF' ${{ inputs.command }} EOF