runner v6
This commit is contained in:
@@ -125,11 +125,17 @@ jobs:
|
|||||||
- name: Install SSH password helper
|
- name: Install SSH password helper
|
||||||
run: sudo apt-get update && sudo apt-get install -y sshpass
|
run: sudo apt-get update && sudo apt-get install -y sshpass
|
||||||
|
|
||||||
- name: Configure SSH known hosts
|
- name: Validate deployment secrets
|
||||||
|
run: |
|
||||||
|
test -n "${SSH_HOST}" || (echo "Missing required secret: SSH_HOST" && exit 1)
|
||||||
|
test -n "${SSH_USER}" || (echo "Missing required secret: SSH_USER" && exit 1)
|
||||||
|
test -n "${SSH_PASSWORD}" || (echo "Missing required secret: SSH_PASSWORD" && exit 1)
|
||||||
|
test -n "${DEPLOY_PATH}" || (echo "Missing required secret: DEPLOY_PATH" && exit 1)
|
||||||
|
|
||||||
|
- name: Configure SSH
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
chmod 700 ~/.ssh
|
chmod 700 ~/.ssh
|
||||||
ssh-keyscan -p "${SSH_PORT:-22}" "${SSH_HOST}" >> ~/.ssh/known_hosts
|
|
||||||
|
|
||||||
- name: Create deployment environment file
|
- name: Create deployment environment file
|
||||||
if: env.APP_ENV_FILE != ''
|
if: env.APP_ENV_FILE != ''
|
||||||
@@ -137,16 +143,24 @@ jobs:
|
|||||||
|
|
||||||
- name: Upload release to server
|
- name: Upload release to server
|
||||||
run: |
|
run: |
|
||||||
SSHPASS="${SSH_PASSWORD}" sshpass -e rsync -avz -e "ssh -p ${SSH_PORT:-22}" "${RELEASE_FILE}" "${SSH_USER}@${SSH_HOST}:/tmp/${RELEASE_FILE}"
|
SSHPASS="${SSH_PASSWORD}" sshpass -e rsync -avz \
|
||||||
|
-e "ssh -p ${SSH_PORT:-22} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
|
||||||
|
"${RELEASE_FILE}" "${SSH_USER}@${SSH_HOST}:/tmp/${RELEASE_FILE}"
|
||||||
|
|
||||||
- name: Upload environment file to server
|
- name: Upload environment file to server
|
||||||
if: env.APP_ENV_FILE != ''
|
if: env.APP_ENV_FILE != ''
|
||||||
run: |
|
run: |
|
||||||
SSHPASS="${SSH_PASSWORD}" sshpass -e rsync -avz -e "ssh -p ${SSH_PORT:-22}" .env.deploy "${SSH_USER}@${SSH_HOST}:/tmp/.env.deploy"
|
SSHPASS="${SSH_PASSWORD}" sshpass -e rsync -avz \
|
||||||
|
-e "ssh -p ${SSH_PORT:-22} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
|
||||||
|
.env.deploy "${SSH_USER}@${SSH_HOST}:/tmp/.env.deploy"
|
||||||
|
|
||||||
- name: Extract release and finalize deployment
|
- name: Extract release and finalize deployment
|
||||||
run: |
|
run: |
|
||||||
SSHPASS="${SSH_PASSWORD}" sshpass -e ssh -p "${SSH_PORT:-22}" "${SSH_USER}@${SSH_HOST}" << EOF
|
SSHPASS="${SSH_PASSWORD}" sshpass -e ssh \
|
||||||
|
-p "${SSH_PORT:-22}" \
|
||||||
|
-o StrictHostKeyChecking=no \
|
||||||
|
-o UserKnownHostsFile=/dev/null \
|
||||||
|
"${SSH_USER}@${SSH_HOST}" << EOF
|
||||||
set -e
|
set -e
|
||||||
mkdir -p "${DEPLOY_PATH}"
|
mkdir -p "${DEPLOY_PATH}"
|
||||||
tar -xzf "/tmp/${RELEASE_FILE}" -C "${DEPLOY_PATH}"
|
tar -xzf "/tmp/${RELEASE_FILE}" -C "${DEPLOY_PATH}"
|
||||||
|
|||||||
Reference in New Issue
Block a user