name: Build Hugo Site on: push: branches: - main jobs: build: runs-on: self-hosted container: image: node:20-alpine steps: - name: Install Git run: apk add --no-cache git - name: Checkout uses: actions/checkout@v3 - name: Install Hugo Extended run: | apk add --no-cache wget tar rsync openssh wget https://github.com/gohugoio/hugo/releases/download/v0.152.2/hugo_extended_0.152.2_Linux-64bit.tar.gz tar -xzf hugo_extended_0.152.2_Linux-64bit.tar.gz mv hugo /usr/local/bin/hugo hugo version - name: Build run: hugo --minify - name: Deploy run: | mkdir -p /root/.ssh echo "$SSH_KEY" > /root/.ssh/id_ed25519 chmod 600 /root/.ssh/id_ed25519 rsync -avz --delete \ -e "ssh -i /root/.ssh/id_ed25519 -o StrictHostKeyChecking=no" \ public/ ${SSH_USER}@${SSH_HOST}:${DEPLOY_PATH} env: SSH_KEY: ${{ secrets.SSH_KEY }} SSH_USER: ${{ secrets.SSH_USER }} SSH_HOST: ${{ secrets.SSH_HOST }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}