diff --git a/.forgejo/workflows/build_and_deploy_site.yml b/.forgejo/workflows/build_and_deploy_site.yml new file mode 100644 index 0000000..1ce4a10 --- /dev/null +++ b/.forgejo/workflows/build_and_deploy_site.yml @@ -0,0 +1,49 @@ +name: Build and Deploy Hugo + +on: + push: + branches: + - master + pull_request: + +jobs: + deploy: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Setup Hugo + run: | + 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 + chmod +x hugo + mkdir -p ~/bin + mv hugo ~/bin/ + echo "~/bin" >> $GITHUB_PATH + + - name: Build + run: hugo --minify + + - name: Setup SSH + run: | + echo "Setting up SSH..." + mkdir -p ~/.ssh + 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" + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + chmod 700 ~/.ssh + echo "SSH key saved and permissions set" ssh-keyscan -H alexselimov.com >> ~/.ssh/known_hosts + echo "Host key added to known_hosts" + # Test SSH connection + echo "Testing SSH connection..." + ssh -o StrictHostKeyChecking=no -o BatchMode=yes root@alexselimov.com "echo 'SSH connection successful'" || echo "SSH connection failed" + + - name: Deploy + run: rsync -azvr public/* root@alexselimov.com:/var/www/alexanderselimov.com/