Odkąd zmieniłem sposób generowania strony z dynamicznego CMSa na statyczny generator stron - Hugo, doskwierał mi sposób w jaki trzeba było aktualizować stronę. Jak już wpis powstał i przyszła pora na jego opublikowanie, trzeba było najpierw wygenerować wszystkie strony (co aż takim problemem nie jest), a następnie wrzuciś je na serwer.

Nie było to aż tak problematyczne na moim głównym komputerze, ponieważ tam wszytko jest już ustawione i do wszystkeigo wystarczy wklepać dwie komendy w terminalu. Chciałbym jednak mieć możliwość prostej publikacji także z innego komoputera i nie bawić się za każdym razem w konfigurowanie wszytkiego.

W związku z tym, że źródło strony trzymam teraz w repozytorium na GitHubie, to postanowiłem sprawdzić, czy nie da się wykorzystać do tego Github Actions.

GitHub Actions to platforma CT/CD, która umożliwia automartyzację procesów związanych z budowaniem i wdrażaniem oprogramowania. Procesy takie zwykle kojarzyły mi się z zewnętrznymi narzędziami i nie miałem wcześniej pojęcia, że GitHub udostępnia coś takiego za darmo.

Nie chcę robić całego tutoriala o tym, bo nie sądzę że ktoś po polsksu z tego skorzysta, ale po instrukcję krok po kroku odsyłam do Christiana.

Dwie rzeczy, które musiałem zmienić:

  • Jeśli przy tworzeniu klucza SSH podawaliśmy hasło, to trzeba je także podać podczas wykorzystania go w rclone
  • Mój server hostingowy - atthost ma zmieniony port dla SSH, więc też trzeba dołożyć odpowiedni parametr.

Cała konfiguracja zajęła mi około godziny, bo miałem trochę problemów właśnie z poprawnym uwierzytelnianiem. Kiedy jednak już skrypt udało się dopracować, to po każdej aktualizacji repozytorium strona się buduje i trafia na serwer. Teraz mogę ją aktualizować z dowolnego urządzenia.

Żałuję, że tak późno spróbowałem tych GitHub Actions, ale na pewno to nie będzie jedyny workflow jaki tam wykonam. Już wykombinowałem jak usprawnić zarządzanie modułami w pracy.