AlexSelimov.com/.forgejo/workflows/build_and_deploy_site.yml

50 lines
1.6 KiB
YAML
Raw Normal View History

2025-07-11 23:31:49 -04:00
name: Build and Deploy Hugo
on:
push:
branches:
- master
pull_request:
jobs:
deploy:
runs-on: ubuntu-22.04
steps:
2025-07-12 21:38:41 -04:00
- uses: actions/checkout@v4
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
2025-07-12 22:08:25 -04:00
2025-07-12 21:52:09 -04:00
- name: Setup Hugo
2025-07-12 22:00:22 -04:00
run: |
2025-07-12 22:15:18 -04:00
wget https://github.com/gohugoio/hugo/releases/download/v0.147.8/hugo_0.147.8_linux-amd64.tar.gz
tar -xzf hugo_0.147.8_linux-amd64.tar.gz
2025-07-12 22:08:25 -04:00
chmod +x hugo
2025-07-12 22:11:38 -04:00
mkdir -p ~/bin
mv hugo ~/bin/
echo "~/bin" >> $GITHUB_PATH
2025-07-11 23:31:49 -04:00
- name: Build
run: hugo --minify
2025-07-12 22:25:14 -04:00
- name: Setup SSH
run: |
2025-07-12 22:29:00 -04:00
echo "Setting up SSH..."
2025-07-12 22:25:14 -04:00
mkdir -p ~/.ssh
2025-07-12 22:29:00 -04:00
if [ -z "${{ secrets.SSH_PRIVATE_KEY }}" ]; then
echo "ERROR: SSH_PRIVATE_KEY secret is not set!"
exit 1
fi
echo "SSH_PRIVATE_KEY secret is present"
2025-07-12 22:25:14 -04:00
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
2025-07-12 22:29:00 -04:00
chmod 700 ~/.ssh
2025-07-13 05:49:08 -04:00
echo "SSH key saved and permissions set" ssh-keyscan -H alexselimov.com >> ~/.ssh/known_hosts
2025-07-12 22:29:00 -04:00
echo "Host key added to known_hosts"
# Test SSH connection
echo "Testing SSH connection..."
2025-07-13 05:49:08 -04:00
ssh -o StrictHostKeyChecking=no -o BatchMode=yes root@alexselimov.com "echo 'SSH connection successful'" || echo "SSH connection failed"
2025-07-12 22:25:14 -04:00
2025-07-11 23:31:49 -04:00
- name: Deploy
2025-07-13 05:49:08 -04:00
run: rsync -azvr public/* root@alexselimov.com:/var/www/alexselimov.com/