Automatický deploy z GitHub na FTP

Automatický deploy z GitHub na FTP
Photo by Growtika Developer Marketing Agency / Unsplash

Mnoho používaných webhostingov ma ešte aj dnes podporu FTP. Osobne tento protokol nepovažujem za ideálny na prácu, ale mnohokrát je to jediný spôsob ako dostať svoj kód na server.

No čo v prípade ak pracujeme v tíme? Každý člen dostane svoj FTP prístup a možno si to občas navzájom prepíšeme, v horšom prípade zhodíme u toho celý web? Alebo bude nejaký team leader, ktorý bude mať za toto zodpovednosť? Bude čakať, kedy za ním niekto príde, že potrebuje nasadiť zmeny? Ak bude na webe nejaký bug, ktorý je potrebné urgentne vyriešiť a team leader ma zrovna dovolenku... 🤔

a business woman who is stressed and frustrated
Photo by Elisa Ventur / Unsplash

Toto nasadzovanie sa samozrejme da riešiť podstatne elegantnejšie. Dnes si ukážeme, ako riešiť automatické nahrávanie zmien v GitHub na FTP. Budeme k tomu potrebovat učet na GitHub.com a nejaky ten hosting s FTP prístupom:

Krok 1 - vytvorenie repozitára

Pomocou odkazu https://github.com/new si vytvorime novy repozitar. Vyplnime nazov/popis, prípadne ostatne požadované parametre.


Krok 2 - nastavenie GitHub action

V našom novo vytvorenom repozitári vytvoríme súbor /.github/workflows/main.yml, ktorý bude obsahovať sadu pokynov, ktorá sa ma vykonať po pushnuti do main branchu.

Súbor môžeme vytvoriť priamo cez webové rozhranie

Obsah súboru by mal vyzerať približne takto


Krok 3 - nastavenie prístupových údajov

V predchádzajúcom kroku sme si nastavili automatický deploy. Ešte by bolo vhodné dodať prístupové údaje na FTP. Toto urobíme cez GitHub secrets.

Pojdeme do nastaveni repozitara (settings), klikneme na secrets, vybereme možnosť actions a postupne tam vložíme jednotlivé premenné.

V našom prípade je potrebné minimálne:
1) FTP_SERVER - adresa na náš FTP server
2) FTP_PORT - port FTP servera (zvykne byť 21)
3) FTP_PROTOCOL - protokol servera (ftp, alebo ftps)
4) FTP_USERNAME - prihlasovacie meno na FTP server
5) FTP_PASSWORD - prihlasovacie heslo na FTP server


Krok 4 - otestovanie funkčnosti

Ak ste sa dostali až sem, je na čase otestovať či všetko funguje. Skúsme pushnut nejakú malú zmenu do main branche a uvidíme, či sa to úspešne nakopíruje na FTP.

U mna to úplne bezproblémov nebolo. Po rozkliknutí actions som si všimol, že mi joby zlyhávajú - možno to vidieť podľa červenej značky vedľa jobu.

Po rozkliknutí som našiel chybu FTPError: 530 Login authentication failed.

Keďže som si bol istý, že som prístupové údaje zadával správne, obrátil som sa na podporu hostingu. Zistil som, že blokujú pokusy o pripojenie na FTP zo zahraničia. Poradili mi, ako túto ochranu vypnúť a od vtedy to už funguje bez akýchkoľvek problémov


Fungovalo vám to? So svojími skúsenostami sa môžete podeliť v komentároch 👇