수동 체크아웃 스크립트 추가
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
name: 특정 저장소 체크아웃
|
||||
description: Git 인증 정보를 사용해 특정 저장소와 브랜치를 수동으로 체크아웃
|
||||
|
||||
inputs:
|
||||
repository-url:
|
||||
required: true
|
||||
description: 체크아웃할 Git 저장소 URL
|
||||
username:
|
||||
required: true
|
||||
description: Git 인증 사용자명
|
||||
access-token:
|
||||
required: true
|
||||
description: Git 인증 토큰
|
||||
branch:
|
||||
required: false
|
||||
default: develop
|
||||
description: 체크아웃할 브랜치
|
||||
path:
|
||||
required: false
|
||||
default: "."
|
||||
description: 저장소를 체크아웃할 경로
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: 특정 저장소 체크아웃
|
||||
shell: bash
|
||||
env:
|
||||
GIT_REPOSITORY_URL: ${{ inputs.repository-url }}
|
||||
GIT_USERNAME: ${{ inputs.username }}
|
||||
GIT_ACCESS_TOKEN: ${{ inputs.access-token }}
|
||||
GIT_BRANCH: ${{ inputs.branch }}
|
||||
CHECKOUT_PATH: ${{ inputs.path }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
SUDO=""
|
||||
[ "$(id -u)" -ne 0 ] && SUDO="sudo"
|
||||
|
||||
if ! command -v git >/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 git ca-certificates
|
||||
else
|
||||
echo "git이 없습니다. git을 설치한 러너가 필요합니다."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
ASKPASS_FILE="$(mktemp)"
|
||||
cleanup() {
|
||||
rm -f "$ASKPASS_FILE"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
cat > "$ASKPASS_FILE" <<'EOF'
|
||||
#!/bin/sh
|
||||
case "$1" in
|
||||
*Username*) echo "$GIT_USERNAME" ;;
|
||||
*Password*) echo "$GIT_ACCESS_TOKEN" ;;
|
||||
esac
|
||||
EOF
|
||||
chmod 700 "$ASKPASS_FILE"
|
||||
|
||||
export GIT_ASKPASS="$ASKPASS_FILE"
|
||||
export GIT_TERMINAL_PROMPT=0
|
||||
|
||||
mkdir -p "$CHECKOUT_PATH"
|
||||
git clone \
|
||||
--branch "$GIT_BRANCH" \
|
||||
--single-branch \
|
||||
"$GIT_REPOSITORY_URL" \
|
||||
"$CHECKOUT_PATH"
|
||||
Reference in New Issue
Block a user