Some checks failed
Deploy Website / Deploy Hugo Site (push) Failing after 3s
- Removes the GitLab mirroring workflow. - Replaces the existing website deployment workflow with a new Gitea Actions workflow. - The new workflow uses SSH to deploy to a remote server. - Adds a `build.sh` script to convert images to WebP format. - The deployment workflow now clears Cloudflare cache. - The old workflow used an external action for Cloudflare cache clearing.
47 lines
1.3 KiB
YAML
47 lines
1.3 KiB
YAML
name: Deploy Website
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
update:
|
|
name: Deploy Hugo Site
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Set up SSH and deploy site
|
|
run: |
|
|
echo "🔐 Setting up SSH"
|
|
eval "$(ssh-agent -s)"
|
|
mkdir -p ~/.ssh
|
|
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
chmod 700 ~/.ssh
|
|
ssh-keyscan "$SSH_HOST" >> ~/.ssh/known_hosts
|
|
chmod 644 ~/.ssh/known_hosts
|
|
|
|
echo "🚀 Running remote build"
|
|
ssh -p "$SSH_PORT" "$SSH_USER@$SSH_HOST" "
|
|
cd repo &&
|
|
git stash &&
|
|
git pull --force origin master &&
|
|
./build.sh
|
|
"
|
|
env:
|
|
SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}
|
|
SSH_USER: ${{ secrets.SSH_USER }}
|
|
SSH_HOST: ${{ secrets.SSH_HOST }}
|
|
SSH_PORT: ${{ secrets.SSH_PORT }}
|
|
|
|
- name: Clear Cloudflare cache
|
|
run: |
|
|
curl -X POST "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE/purge_cache" \
|
|
-H "Authorization: Bearer $CLOUDFLARE_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
--data '{"purge_everything":true}'
|
|
env:
|
|
CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }}
|
|
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
|