Bo kopii nigdy za wiele.
Po co to w ogóle robić? Wiadomo, ludzie dzielą się na tych, którzy robią kopie zapasowe i tych, którzy będą je robili. Poza tym może Ci się przydać ściślejsza integracja z Google Cloud Build. Na przykład będziesz mógł budować projekt za każdym razem gdy commit zostanie wypchnięty do określonej gałęzi projektu.
Tworzymy repozytorium na Cloud Source
Po kolei:
- Na stronie source.cloud.google.com kliknij Add repository w prawym górny rogu.
- Wybierz Create new repository a następnie Continue.
- Wpisz nazwę repozytorium, np. nazwa_mojego_projektu_na_GitLab-mirror.
- Wybierz istniejący lub utwórz nowy projekt Google Cloud.
- Wciśnij przycisk Create a Google Cloud Project wyświetli Ci instrukcje jak wrzucić kod do repozytorium. Zostaw tą stronę otwartą i otwórz nową kartę w przeglądarce.
Teraz będziemy konfigurowali projekt GitLaba tak aby korzystał z nowego repozytorium na Google Cloud jako swojego mirrora.
Pamiętaj, że Google Cloud Project podlega opłatom za Cloud Source Repositories. Google obciąża Cię za rozmiar plików, liczbę użytkowników uzyskujących dostęp do repozytorium i ruch sieciowy. Nie zapłacisz za 5 użytkowników, 50 GB miejsca na dane i taki sam ruch wychodzący z sieci. Aby ograniczyć koszty, warto użyć tego samego użytkownika GCP do wszystkich swoich serwerów lustrzanych w danym projekcie.
Konfigurujemy projekt na GitLab (dodajemy mirror)
Kolejność kroków jest następująca:
- W otwartej nowej zakładce przeglądarki otwórz swój projekt GitLab.
- Wybierz Settings a następnie Repository z lewego bocznego menu.
- W polu Git repository URL wpisz SSH URL dla repozytorium Cloud Source, które przed chwilą utworzyliśmy. Ten SSH URL ma następującą składnię:
ssh://<GCP user email>@source.developers.google.com:2022/p/<GCP project ID>/r/<Cloud Source repo name>
. Możez łatwo uzyskać ten adres przełączając się na kartę z repozytorium Cloud Source i kopiując adres URL z jednego ze snippetów z zamieszczonej tam instrukcji (szukaj tekstu Clone with command line). - Upewnij się, że masz zaznaczony Push w opcji Mirror direction.
- Wciśnij przycisk Detect host keys aby zapisać odcisk klucza SSH dla Cloud Source Repositories.
- Przełącz wartość Authentication method na SSH public key.
- Nie zaznaczaj Keep divergent refs – dzięki temu push się nie powiedzie gdy branche będą się znacząco różniło (ot taki bezpiecznik przed zrobieniem czegoś głupiego…).
- Zaznaczenie Mirror only protected branches pozwoli na zaoszczędzenie bezpłatnego limitu usługi.
Gdy naciśniesz przycisk Mirror repository Twój nowy wpis zostanie dodany do listy zmirrorowanych repozytoriów, znajdującej się poniżej.
Sprawdź oferty pracy na TeamQuest
Dodaj klucz SSH GitLaba
Teraz tak:
- Skopiuj publiczny klucz SSH wygenerowany przez GitLab dla Twojego mirrora klikając na symbol schowka (po prawej stronie).
- Przejdź na kartę z Cloud Source, kliknij trzy kropki z menu w prawym górnym rogu strony i wybierz Manage SSH Keys.
- Kliknij przycisk Register SSH Key i w nowootwartym okienku wpisz nazwę klucza dla danego klucza GitLab. Może to być coś w rodzaju moja_nazwa_projektu GitLab.
- Wklej klucz SSH GitLab, które wcześniej skopiowałeś i wciśnij Register.
Pozostało już tylko uruchomić mirrorowanie – kliknij ikonkę Update now na liście akcji GitLab Mirror.