Skip to content

Trigger staging deploy run #4

Trigger staging deploy run

Trigger staging deploy run #4

name: Deploy to TransIP (SFTP)
# trigger-note: staging manual trigger
on:
push:
branches:
- main
- staging
paths:
- "new_site/**"
- ".github/workflows/deploy-transip.yml"
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install lftp
run: |
sudo apt-get update
sudo apt-get install -y lftp
- name: Upload new_site to TransIP via SFTP
env:
SFTP_HOST: ${{ secrets.TRANSIP_SFTP_HOST }}
SFTP_PORT: ${{ secrets.TRANSIP_SFTP_PORT }}
SFTP_USERNAME: ${{ secrets.TRANSIP_SFTP_USERNAME }}
SFTP_PASSWORD: ${{ secrets.TRANSIP_SFTP_PASSWORD }}
SFTP_REMOTE_DIR_PROD: ${{ secrets.TRANSIP_SFTP_REMOTE_DIR_PROD }}
SFTP_REMOTE_DIR_STAGING: ${{ secrets.TRANSIP_SFTP_REMOTE_DIR_STAGING }}
run: |
set -euo pipefail
: "${SFTP_HOST:?Missing TRANSIP_SFTP_HOST}"
: "${SFTP_PORT:?Missing TRANSIP_SFTP_PORT}"
: "${SFTP_USERNAME:?Missing TRANSIP_SFTP_USERNAME}"
: "${SFTP_PASSWORD:?Missing TRANSIP_SFTP_PASSWORD}"
# Default paths for this TransIP setup if directory secrets are not set.
SFTP_REMOTE_DIR_PROD="${SFTP_REMOTE_DIR_PROD:-www/smartvrlab.com}"
SFTP_REMOTE_DIR_STAGING="${SFTP_REMOTE_DIR_STAGING:-www/smartvrlab.com/staging}"
if [ "${GITHUB_REF_NAME}" = "main" ]; then
REMOTE_DIR="${SFTP_REMOTE_DIR_PROD}"
elif [ "${GITHUB_REF_NAME}" = "staging" ]; then
REMOTE_DIR="${SFTP_REMOTE_DIR_STAGING}"
else
echo "Unsupported branch: ${GITHUB_REF_NAME}"
exit 1
fi
lftp -u "${SFTP_USERNAME}","${SFTP_PASSWORD}" "sftp://${SFTP_HOST}:${SFTP_PORT}" <<EOF
set sftp:auto-confirm yes
set cmd:fail-exit yes
set net:max-retries 2
set net:timeout 20
mirror -R --delete --verbose=1 new_site/ "${REMOTE_DIR}"
bye
EOF