name: Deploy Hugo Site on: push: branches: [main] jobs: build: runs-on: docker steps: - name: Check out code uses: actions/checkout@v4 with: submodules: 'true' - name: Install dependencies and Hugo run: | wget https://github.com/gohugoio/hugo/releases/download/v0.148.1/hugo_extended_0.148.1_linux-amd64.deb && apt-get install -y ./hugo_extended_0.148.1_linux-amd64.deb && wget https://go.dev/dl/go1.24.5.linux-amd64.tar.gz && rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz && export PATH=$PATH:/usr/local/go/bin - name: Build Hugo site run: hugo --minify - name: Set up SSH run: | mkdir -p ~/.ssh && echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa - name: Copy site to webserver directory run: | apt-get update && apt-get install -y rsync && rsync --version && rsync -avz --no-times --no-perms -e "ssh -o StrictHostKeyChecking=no -p ${{ secrets.SSH_PORT }}" public/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/home/${{ secrets.SSH_USERNAME }}/octubre/blog/ && rsync -avz --no-times --no-perms -e "ssh -o StrictHostKeyChecking=no -p ${{ secrets.SSH_PORT }}" resources/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/home/${{ secrets.SSH_USERNAME }}/octubre/blog/