WordPress

Jak zintegrować git z moim przepływem pracy WordPress, gdy pracuję na zdalnych hostach

  • 1 sierpnia, 2024
  • 4 min read
Jak zintegrować git z moim przepływem pracy WordPress, gdy pracuję na zdalnych hostach


Sytuacja

Pracuję tylko nad wtyczką. Obecnie jestem jedynym użytkownikiem, ale jest ona w kolejce do zatwierdzenia WordPress.org, więc mam nadzieję, że znajdę dla niej bazę użytkowników. Podczas gdy większość artykułów, które znajduję, zaleca pracę na serwerze lokalnym, ja wolę pracować na serwerze zdalnym. Dzieje się tak, ponieważ pracuję na 4 różnych komputerach, w tym na jednym w mocno zablokowanym środowisku, w którym nic nie może być zainstalowane lokalnie, ale mój edytor online działa. Obecnie jestem jedynym programistą, ale mam nadzieję, że w przyszłości otrzymam pomoc od jednego lub dwóch innych. Obecnie pracuję na zdalnym hoście (nazwijmy go Dev), gdy jestem gotowy do przetestowania funkcji, kompresuję (lub archiwizuję w terminologii siteground) mój folder wtyczki i pobieram go. Mam drugi zdalny host (nazwijmy go Test) z prostą konfiguracją WP. W środowisku Test tworzę kopię tymczasową do moich testów i instaluję na niej moją wtyczkę w formacie zip za pomocą graficznego interfejsu użytkownika WP Admin. Jeśli to działa zgodnie z oczekiwaniami, testuję na kopii testowej mojej witryny produkcyjnej, która obejmuje WooCommerce i szereg innych wtyczek, aby sprawdzić, czy moja wtyczka działa dobrze w bardziej złożonym środowisku WP. Wtyczka zostanie następnie zainstalowana na mojej stronie produkcyjnej w celu testowania, zanim rozważę szersze udostępnienie zaktualizowanej wersji. Planuję sprzedawać wersję premium mojej wtyczki za pośrednictwem Freemius, więc zanim aktualizacja będzie mogła zostać rozprowadzona, wtyczka będzie musiała zostać załadowana do Freemius, aby wygenerować wersję bezpłatną i premium.

Warto przeczytać!  kanał — niestandardowy kanał RSS powodujący przekroczenie limitu czasu dla witryny

Warto również wspomnieć, że jako projekt hobbystyczny czasami rozpraszają mnie nowe pomysły na funkcje, które mogą nie być najwyższym priorytetem, ale w danym momencie mnie interesują. W rezultacie czasami bawię się gałęziami kodu. Zazwyczaj są one hostowane na dodatkowych kopiach przejściowych środowisk Dev lub Test. Chociaż kiedyś byłem zawodowym programistą oprogramowania, w momencie, gdy w moich zespołach zaczęto używać Gita, zarządzałem nimi, a nie aktywnie kodowałem. Dlatego nie zawsze mam jasność co do właściwych „czasowników” Gita, których należy użyć w każdej sytuacji. Jeśli to ma jakieś znaczenie, moim hostem jest Siteground, mam ssh do hostów, a Git jest na nich zainstalowany. Obecnie przechowuję moją listę błędów i funkcji na GitHub.

Problem

Brak kontroli źródła. Co mnie boli. Muszę zintegrować git z tym procesem. Zwłaszcza dlatego, że mam nadzieję na współpracę z innymi programistami w przyszłości, a także ze względu na mój nawyk rozgałęziania rozwoju. Fajnie byłoby też mieć możliwość zintegrowania niektórych testów i innych kroków kompilacji z przepływem pracy, ale brak kontroli źródła jest najbardziej palącym problemem.

Warto przeczytać!  wtyczki - wyszukiwanie produktów woocommerce oparte tylko na tytule

Moje proponowane rozwiązanie

Mam dostęp ssh do moich hostów. Jedną z opcji, którą rozważam, jest umieszczenie mojego głównego repozytorium na githubie. Kiedy chcę wykonać jakąś pracę rozwojową, rozgałęziłbym pień github i nazwałbym gałąź po środowisku, w którym wykonywany jest rozwój. Następnie mógłbym sklonować tę gałąź do hosta. Gdy funkcja będzie gotowa, mogę dodać / zatwierdzić zmiany w gałęzi na hoście, a następnie przesłać do githuba. Po przetestowaniu gałąź może zostać scalona z powrotem do pnia na githubie. Wersje produkcyjne byłyby pobierane z pnia github.

Pytania

Czy mój proponowany przepływ pracy działa? Obawiam się, że mogę źle rozumieć coś fundamentalnego na temat działania git. Na przykład, jeśli mam wiele środowisk przejściowych na hoście, czy będzie w porządku, jeśli będę miał wiele klonów mojego github trunk na serwerze?

Git jest zainstalowany na serwerach, ale jeśli użyję go lokalnie, skorzystam z git GUI do scalania itp., a ogólnie czuję się bardziej komfortowo w środowiskach opartych na GUI niż na wierszu poleceń. Czy uważasz, że lepiej byłoby mi używać git lokalnie niż na hostach?

Warto przeczytać!  formularze — Jak zezwolić określonym rozszerzeniom i rozmiarowi pliku na załącznik wp_mail?

Jeśli ten przepływ pracy zadziała, jak odświeżyć środowisko z pnia? Czy lepiej byłoby utworzyć nową gałąź i sklonować ją ponownie do środowiska, czy też połączyć pień z istniejącą gałęzią, a następnie ściągnąć ją do repozytorium na hoście?


Źródło