♾ Własna integracja - 2. Przenosimy kody do Github

Własna integracja - 2. Przenosimy kody do Github

W tej części pokażemy jak przenieść z bramki kody do repozytorium wersjonowania kodu git. Nasze kody przeniesiemy do Github bo jest za darmo i pozwala na tworzenie dowolnej ilości repozytoriów.
Ten opis może się przydać nie tylko dla osób które programują ale też dla tych co chcieli by dodać sobie prywatne repozytorium w Github (też można za darmo) i np. wersjonować w nim całą konfigurację z bramki czy zdjęcia robione kamerami itd. W ten sposób można wersjonować pliki z dowolnego folderu.

To jest kontynuacja opisu w jaki sposób dodać własną integrację do Asystenta domowego. Będę bazował na strukturze katalogów które zostały dodane w pierwszej części.


Dzięki przeniesieniu kodów do Github będziemy mogli edytować je dowolnym edytorem (co jest o wiele prostsze niż edycja w konsoli) i oczywiście będziemy mogli je wersjonować i synchronizować z bramką.

Zaczynamy:

1. Tworzymy nowe repozytorium w Github

jeżeli jeszcze nie mamy to zakładamy konto w serwisie Github:

wybiearmy opcję New repository żeby dodać nowe repozytorium:
image

nazywamy je np. ais_hello wybieramy czy ma być prywatne czy publiczne i naciskamy przycisk Create repository

Dodanie naszego projektu z kodami z bramki do repozytorium

Po utworzeniu repozytorium Github podpowiada nam jak dodać dodać nasze kody do repozytorium z lini komend.

Wystarczy, że przekleimy komendy do konsoli na bramce. Otwieramy konsole na bramce i przechodzimy od naszego folderu z integracją:

cd ~/AIS/custom_components/ais_hello/

następnie komendy które podpowiada Github:

echo "# ais_hello" >> README.md
git init
git add .

:warning: komendą: git add . dodaliśmy wszystkie nasze kody z folderu ~/AIS/custom_components/ais_hello/
Jeżeli dodałeś publiczne repozytroium to uważaj co do niego w ten sposób dodajesz.

Gdy będziemy chcieli zapisać zmiany:

git commit -m "first commit"

to git zapyta nas o to kim jesteśmy:

podajemy inroamcje takie jak podaliśmy przy zakładaniu konta w Github, w moim przypadku:

teraz będziemy mogli kontynuować i dodać pierwszy komit (piewszą wersję naszej aplikacji) z opisem:

git commit -m "aplikacja w wersji z części piewszej"

i pozostałe 2 komendy

git branch -M main
git push -u origin main

w efekcie dostaniemy coś takiego w konsoli:

i w serwisie Github możemy już zobaczyć nasze kody z bramki:

Synchronizowanie zmian pomiędzy bramką a repozytorium kodów

Normalnie teraz repozytorium kodu integracji klonujemy na swój komputer na którym mamy ulubiony edytor do pisania kodu. Pominę ten opis bo tu każdy może mieć inne podejście do tematu.

W ulubionym edytorze kodu wykonujemy kolejną wersję naszej integracji i przesyłamy do repozytorium.
Ja te zmiany kodu do kolejnej wersji zrobię bezpośrednio w repozytorium Github:

zmianiamy kod

DOMAIN = "ais_hello"


def setup(hass, config):
    
    liczniki = [1, 2, 3]
    for x in liczniki:
        hass.states.set("ais_hello.licznik" + str(x), x*5)

    return True

komitujemy ze stosownym komenarzem

Wracamy do konsoli na bramce, przechodzimy do naszego folderu z integracją i wykonujemy komendę git pull - pobieramy najnowszą wersję programu z repozytorium kodów:

cd ~/AIS/custom_components/ais_hello/
git pull

restart serwisu ais:

pm2 restart ais

po ponownym uruchomieniu Asystenta możemy zobaczyć już efekt działania naszego nowego programu:

Podsumowanie

2 komendy najważniejsze w życiu programisty to:

git commit -m 'komentarz'
git push

Będziemy je dość często używać w kolejnych częściach.
Dzięki temu żadna linijka nie ginie. Jak ważne są to komendy obrazuje ten rysunek znany z biur firm informatycznych :wink:

image

Jest to oczywiście żart ale wynalezienie git-a przez twórce Linux-a :pray: jest ogromnym ułatwieniem - mam kilka komputerów i nigdy nie straciłem żadnego pliku (chyba że skasowałem sam).

Wystarczy znać te komendy i można dowolne plik za darmo wersjonować w prywatnym repozytorium.

PS
Kody Asystenta domowego są dobrze zabezpieczone dla przyszłych pokoleń :slight_smile:

Github przechowuje kody Asystenta domowego w “Arktycznym archiwum” - to nie żart:

2 polubienia