Skip to content

Commit 8d4387b

Browse files
committed
Adjust deploy step commands
1 parent 1b2b631 commit 8d4387b

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

.github/workflows/deployment.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Update apt cache
2323
run: sudo apt-get update
2424

25-
- name: Install php ${{ env.PHP_VERSION }}
25+
- name: Install PHP ${{ env.PHP_VERSION }}
2626
run: sudo apt-get install php${{ env.PHP_VERSION }}-cli
2727

2828
- name: Validate composer.json and composer.lock
@@ -51,36 +51,51 @@ jobs:
5151
- name: Checkout Code
5252
uses: actions/checkout@v4
5353

54+
- name: Sanitize Branch Name
55+
id: sanitize
56+
run: |
57+
CLEAN_BRANCH_NAME="${GITHUB_REF_NAME//\//_}"
58+
echo "CLEAN_BRANCH_NAME=${CLEAN_BRANCH_NAME}" >> $GITHUB_ENV
59+
outputs:
60+
CLEAN_BRANCH_NAME: ${{ steps.sanitize.outputs.CLEAN_BRANCH_NAME }}
61+
5462
- name: Compress Artifacts
55-
run: zip -r project.zip .
63+
run: zip -r ${{ steps.sanitize.outputs.CLEAN_BRANCH_NAME }}.zip .
5664

5765
- name: Deploy to Remote
5866
env:
67+
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
5968
SSH_HOST: ${{ secrets.SSH_HOST }}
6069
SSH_PORT: ${{ secrets.SSH_PORT }}
6170
SSH_USER: ${{ secrets.SSH_USER }}
6271
SSH_KEY: ${{ secrets.SSH_KEY }} # SSH private key stored as a GitHub secret
6372
SSH_WEB_PATH: ${{ secrets.SSH_WEB_PATH }}
64-
BRANCH_NAME: ${{ github.ref_name }}
73+
CLEAN_BRANCH_NAME: ${{ steps.sanitize.outputs.CLEAN_BRANCH_NAME }}
6574
run: |
6675
#!/usr/bin/env bash
6776
set -ex -o pipefail
6877
69-
# Save the private key for SSH
78+
# Setup SSH directory, known hosts, and private key
7079
mkdir -pv "${HOME}/.ssh"
80+
echo "${SSH_KNOWN_HOSTS}" > "${HOME}/.ssh/known_hosts"
81+
chmod -v 644 "${HOME}/.ssh/known_hosts"
7182
echo "${SSH_KEY}" > "${HOME}/.ssh/id_${SSH_USER}"
7283
chmod -v 400 "${HOME}/.ssh/id_${SSH_USER}"
7384
74-
# Copy the artifact to the Remote
75-
scp -i "${HOME}/.ssh/id_${SSH_USER}" -P "${SSH_PORT}" project.zip "${SSH_USER}@${SSH_HOST}:${SSH_WEB_PATH}/${BRANCH_NAME}"
85+
# Deploy artifact to the remote
86+
scp -i "${HOME}/.ssh/id_${SSH_USER}" -P "${SSH_PORT}" "${CLEAN_BRANCH_NAME}.zip" "${SSH_USER}@${SSH_HOST}:${SSH_WEB_PATH}/"
7687
77-
# Connect to the Remote and unzip the project
88+
# SSH to remote and process artifact
7889
ssh -i "${HOME}/.ssh/id_${SSH_USER}" -p "${SSH_PORT}" "${SSH_USER}@${SSH_HOST}" << EOF
79-
mkdir -p ${SSH_WEB_PATH}/${BRANCH_NAME}
80-
cd ${SSH_WEB_PATH}/${BRANCH_NAME}
81-
unzip ./project.zip
82-
rm ./project.zip
90+
set -ex -o pipefail
91+
cd ${SSH_WEB_PATH}/
92+
rm -rfv ./${CLEAN_BRANCH_NAME}/
93+
mkdir -pv ./${CLEAN_BRANCH_NAME}/
94+
mv -v ./${CLEAN_BRANCH_NAME}.zip ./${CLEAN_BRANCH_NAME}/
95+
cd ./${CLEAN_BRANCH_NAME}/
96+
unzip -o ./${CLEAN_BRANCH_NAME}.zip
97+
rm ./${CLEAN_BRANCH_NAME}.zip
8398
EOF
8499
85100
# Cleanup the secret
86-
rm -rfv "${HOME}/.ssh/id_${SSH_USER}" "${HOME}/.ssh/id_${SSH_USER}.pub"
101+
rm -fv "${HOME}/.ssh/id_${SSH_USER}" "${HOME}/.ssh/id_${SSH_USER}.pub"

0 commit comments

Comments
 (0)