Schedule Hugo dan Auto Deploy ke Server dengan Akses SSH

Nov 4, 2021 hugo schedule ssh rsync

Berikut ini tutorial schedule hugo dan langsung deploy ke server sendiri dengan rsync. Syaratnya hanya satu, harus ada akses SSH ke servernya. Kali ini agak kompleks gak apa-apa ya, worth it kok hehe..

name: Build Using Cron Schedule
on:
  schedule:
    - cron: "0 0 * * *"
  workflow_dispatch:

jobs:
  build-and-deploy:
    name: Build and Deploy
    runs-on: [ ubuntu-latest ]
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v2

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "0.88.0"

      - name: Build Static HTML
        run: hugo

      - name: Install SSH Key
        uses: shimataro/ssh-key-action@v2
        with:
          key: ${{ secrets.SSH_PRIVATE_KEY }} 
          known_hosts: 'just-a-placeholder-so-we-dont-get-errors'

      - name: Adding Known Hosts
        run: ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts

      - name: Deploy ke server dengan rsync
        run: rsync -avz ./public/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/home/resepcinta.my.id/public_html/

Semoga membantu. :)