Jestem bardzo nowy w Git i po odkryciu w nim małego błędu planuję wnieść swój wkład w jakiś projekt open-source w GitHub. Po rozwidleniu go i naprawieniu błędu zdecydowałem się na żądanie ściągnięcia i zauważyłem, że pojawia się:
Niepowodzenie - kompilacja Travis CI nie powiodła się
Patrząc na szczegóły, odkryłem, że jest to spowodowane Could not find .travis.yml
, co miało sens, ponieważ nie zalogowałem się do Travis Cl i nie dodałem .travis.yml do repozytorium.
To jest mój pierwszy raz, kiedy słyszę o Travisie i tym, co nazywamy ciągłą integracją. Brzmi całkiem fajnie, więc aby dowiedzieć się więcej, poszukałem tego na Wikipedii.
Travis CI jest hostowaną, rozproszoną usługą ciągłej integracji używaną do tworzenia i testowania projektów hostowanych na GitHub. Travis CI automatycznie wykrywa, kiedy zatwierdzenie zostało wykonane i wypchnięte do repozytorium GitHub, które używa Travis CI, i za każdym razem, gdy to się stanie, spróbuje zbudować projekt i uruchomić testy . Obejmuje to zatwierdzenia do wszystkich gałęzi, nie tylko do gałęzi głównej.
Moje obecne rozumienie Travis CI jest takie, że to, co robi, automatycznie popycha projekt do przodu git commit -am ".."
i nie całkiem rozumiem jakiejś jego części.
Poprzez budowanie projektu i przeprowadzenie testów , jakie testy to będzie działać? A jak „zbuduje” projekt? (jak kompilowanie do binarnego?)
Stwierdza, że „Obejmuje to zmiany we wszystkich gałęziach” - ale co, jeśli nie chcę zatwierdzać wszystkich gałęzi?
Czy to w porządku, jeśli w ogóle nie używam Travis Cl? W jakich okolicznościach najlepiej go używać (lub należy go użyć)?
Ponieważ już odkryłeś, czym jest Travis-CI, chciałbym bezpośrednio wskazać na pytania, które masz.
W
.travis.yml
pliku określasz swój system operacyjny, język programowania, gałąź repozytorium, nazwę pliku projektu i inne szczegóły. Czytając ten plik, Travis-CI użyje określonych kompilatorów zainstalowanych na ich serwerze do skompilowania naszego kodu. Prawdopodobnie będą miały ten sam mechanizm, co my dla Githuba. Po raz pierwszy mogą pobrać kod [jeśli określimy określone gałęzie, mogą pobrać kod tylko z tych gałęzi]. Ponadto, uwierzytelniliśmy się, aby korzystać z naszego konta w Travis-CI, za każdym razem, gdy robimy zatwierdzenie, powinno być jakieś powiadomienie o uruchomieniu do serwera Travis-CI, dlatego zostanie rozpoznane jako zatwierdzenie i rozpocznie się kompilacja.Możesz określić różne gałęzie lub
master
gałąź. I powinien kompilować tylko określone gałęzie określone w.travis.yml
pliku.Tak, w porządku. Żaden problem. Ale jakich korzyści będziesz tracić, nie używając tego łatwego do zintegrowania silnika z repozytorium. Za każdym razem, gdy zatwierdzasz, może się zdarzyć, że coś przegapi i nie może się skompilować z powodu kodu. Skąd będziesz wiedzieć? Dlatego powinieneś użyć Travis-CI.
Napisałem post na blogu, z którym możesz przeczytać, aby dowiedzieć się, co to jest Travis-CI, Continuous Integrations i jak połączyć Travis-CI z Twoim Github Repo. Napisałem go dla repozytorium Swift.
źródło
Myślę, że jestem w bardzo dobrej sytuacji, aby odpowiedzieć na twoje pytanie, ponieważ obecnie uczę się Travis CI. Pierwszy problem, który napotkałeś w pierwszej kolejności, jest taki, że projekt, do którego pracujesz, używa Travis CI do testowania i budowania projektu. Jeśli projekt nie używa Travis CI, nie natknąłbyś się na taki błąd.
Rozwiązaniem jest wejście na stronę Travis CI i dowiedz się, jak to działa i jak wpłynęło na projekt, nad którym pracujesz. Dzięki temu będziesz w stanie bardzo dobrze zrozumieć, co jest wadliwe w Twoim kodzie i jak to naprawić.
Aby odpowiedzieć na pierwsze pytanie dotyczące budowy projektu.
Oznacza to, jak kod źródłowy jest przetwarzany przed użyciem / testem. To zależy od języka, w którym piszesz. Na przykład, jeśli projekt pisze w PHP. Nie ma zamiaru budować mojego kodu w pliku wykonywalnym, takim jak kod źródłowy C / C ++. Uruchomi mój kod PHP na interpretatorze PHP i przetestuje go, gdy to robi. Nadal przechodzi przez normalny proces kompilacji, przez który przechodzi twój preferowany język.
źródło