Skip to content

Deploy scraped asset directories required by legacy image paths #7

Deploy scraped asset directories required by legacy image paths

Deploy scraped asset directories required by legacy image paths #7

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/staging}"
upload_dir () {
local source_dir="$1"
local target_dir="$2"
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 "${source_dir}" "${target_dir}"
bye
EOF
}
if [ "${GITHUB_REF_NAME}" = "main" ]; then
upload_dir "new_site/" "${SFTP_REMOTE_DIR_PROD}"
elif [ "${GITHUB_REF_NAME}" = "staging" ]; then
upload_dir "new_site/" "${SFTP_REMOTE_DIR_STAGING}"
else
echo "Unsupported branch: ${GITHUB_REF_NAME}"
exit 1
fi
# Shared assets referenced by many pages with ../scraped_site* paths.
upload_dir "scraped_site/assets/" "www/scraped_site/assets"
upload_dir "scraped_site_smartvrlab.nl/assets/" "www/scraped_site_smartvrlab.nl/assets"