Skip to content

Commit 0ce79ca

Browse files
committed
Fix site deploy: lftp mirror with proper SSH key handling
1 parent 7ea6046 commit 0ce79ca

1 file changed

Lines changed: 26 additions & 10 deletions

File tree

.github/workflows/site.yml

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,34 @@ jobs:
2222
- name: Build site
2323
run: cd site && npm run build
2424

25-
- name: Deploy via SFTP
25+
- name: Setup SSH key
2626
run: |
27-
sudo apt-get install -y -qq lftp > /dev/null 2>&1
2827
mkdir -p ~/.ssh
29-
echo "${{ secrets.SITE_SSH_KEY }}" > ~/.ssh/deploy_key
28+
printf '%s\n' "$SSH_KEY" > ~/.ssh/deploy_key
3029
chmod 600 ~/.ssh/deploy_key
31-
ssh-keyscan -p ${SITE_PORT:-22} ${{ secrets.SITE_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
30+
ssh-keyscan -p ${PORT:-22} "$HOST" >> ~/.ssh/known_hosts 2>/dev/null
31+
env:
32+
SSH_KEY: ${{ secrets.SITE_SSH_KEY }}
33+
HOST: ${{ secrets.SITE_HOST }}
34+
PORT: ${{ secrets.SITE_PORT }}
35+
36+
- name: Deploy via SFTP
37+
run: |
38+
sudo apt-get install -y -qq lftp > /dev/null 2>&1
39+
40+
KEY="$HOME/.ssh/deploy_key"
41+
PORT="${SFTP_PORT:-22}"
42+
43+
lftp <<LFTP_SCRIPT
44+
set sftp:connect-program "ssh -i ${KEY} -p ${PORT} -o StrictHostKeyChecking=no"
45+
open sftp://${SFTP_USER}:@${SFTP_HOST}
46+
mirror --reverse --delete --verbose --parallel=4 site/build/ ${SFTP_PATH}
47+
quit
48+
LFTP_SCRIPT
3249
33-
lftp -c "
34-
set sftp:connect-program 'ssh -i $HOME/.ssh/deploy_key -p ${SITE_PORT:-22}';
35-
open sftp://${{ secrets.SITE_USER }}@${{ secrets.SITE_HOST }};
36-
mirror --reverse --delete --verbose site/build/ ${{ secrets.SITE_PATH }};
37-
"
50+
echo "Deploy complete!"
3851
env:
39-
SITE_PORT: ${{ secrets.SITE_PORT }}
52+
SFTP_USER: ${{ secrets.SITE_USER }}
53+
SFTP_HOST: ${{ secrets.SITE_HOST }}
54+
SFTP_PORT: ${{ secrets.SITE_PORT }}
55+
SFTP_PATH: ${{ secrets.SITE_PATH }}

0 commit comments

Comments
 (0)