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:
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 .
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
Jest to oczywiście żart ale wynalezienie git-a przez twórce Linux-a 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ń
Github przechowuje kody Asystenta domowego w “Arktycznym archiwum” - to nie żart: