Zobacz docs / pl / index.md na przegląd systemu potokowe.
Komenda CheckPipelineStatus powinny być prowadzone w sposób ciągły, aby zapewnić, że rurociąg wnioski postępować tak szybko jak oni może. Obecnie osiąga się to z zastosowaniem procesu demon zainstalowanego na /etc/init.d/pipecheck.Kod może być znaleźć w /path/to/webroot/deploynaut/.scripts/pipecheck-initd. Powinna ona zostać zmieniona na /etc/init.d/pipecheck załadować.
Uwaga: OSX można użyć kopii szablonu pipecheck-plist do /Library/LaunchDaemons/deploynaut.pipecheck.plist i zainicjować go z "sudo obciążenia launchctl /Library/LaunchDaemons/deploynaut.pipecheck.plist"
Przed instalacją, będziemy chcieli, aby dwukrotnie sprawdzić webroots w obu skryptów. Obecnie zakłada się, że Webroot jest / sites / deploynaut / www, i dlatego, że skrypt pipecheck, że zawsze jest w pętli /sites/deploynaut/www/deploynaut/.scripts/pipecheck. Oba skrypty muszą być nieznacznie zmodyfikowana (w sekcjach config tylko), jeśli to nie jest przypadek.
Po to jest w miejscu, można uruchomić rurociąg
checker tak:
Sprawdzania rurociągu może być zatrzymany z poleceniem stop
:
1. Rurociąg utworzony na podstawie .yml pliku (patrz poniżej).
2. Rurociąg :: start () nazywa się, co z kolei:
1. Ustawia wszystkie kroki, które muszą być stworzone dla tego gazociągu, na podstawie pliku .yml
2. przedstawia $ this> status = 'Running' (na obiekcie Pipeline).
3. Każdy PipelineStep powinien mieć początek i koniec () () metoda i asynchroniczne kroki powinny mieć proces ()
Metoda.
1. Start () należy ustawić krok do przetwarzania (na przykład co najmniej ustawiony $ this> status = 'Started').
. Synchronicznych kroków, metoda start () wykona rzeczywisty krok wymagany.
b. Dla asynchronicznych kroków, metoda start () powinien stworzyć ofertę, enqueue go przy Resque :: Kolejkuj () i
wywołać "wykonać () 'metody na obiektu PipelineStep
.
Metoda 2. wykończenie () albo będzie się nazywać przez start () dla synchronicznych kroków, lub wykonać () przez asynchroniczne
kroki.
4. Po zakończeniu krok rurociągu, będzie on odebrany przez kontrolera CheckPipelineStatus. Sterownik ten jest
prowadzony za pośrednictwem linii poleceń (za pośrednictwem crona, demon, lub stale skolejkowania się do php-Resque - jeszcze
aby ustalić, jakie działa. Ilekroć kontroler działa, to będzie:
1. Sprawdź, aby upewnić się, że nic nie jest uruchamiany z linii poleceń.
2. Znajdź wszystkie obiekty gazociągów statusu "Running", to zadzwoń Pipeline :: checkPipelineStatus ()
, która:
1. Jeśli obecny etap rurociągu jest oznaczony jako "gotowy", a następnym krokiem nie jest "kroki", a następnie rozpocznij
że następnym krokiem.
2. Jeśli bieżący krok jest oznaczony jako "gotowy", a nie ma już żadnych kroków, a następnie zaktualizować rurociągu do
oznaczyć jako zakończone.
3. Jeśli bieżący krok jest oznaczony jako "Failed" i rurociąg nie jest również oznaczone jako "Failed", a następnie pozostawić
komunikat ostrzegawczy w dziennikach i zaznacz rurociągu jako "Failed" też.
Rurociągi są tworzone przez edycję plików YML do zdefiniowania czynności i ich kolejność wykonywania, a także różne ustawienia konfiguracyjne. Kilka YML są przykładowe pliki poniżej. Są obecnie polegać na środowisko są nazwy bez zmian, co nie jest idealne i byłoby dobrze, aby posprzątać.
Zmienna Config.DependsOnEnvironment jest jak kroki, takie jak SmokeTestPipelineTest wiedzieć, które środowisko do wykonywania ich kontrole.
`` `YML
PipelineConfig: OnSuccessNotify: <instancji menedżer>, , ops @ silverstripe.com OnFailureNotify: <instancji menedżer>, , ops @ silverstripe.com DependsOnProject: "project1" DependsOnEnvironment: "UAT" FilteredCommits: "DNFinishedCommits" kroki: SmokeTestPipelineStepBefore: Klasa: SmokeTestPipelineStep PerformTestOn: "DependentEnvironment" TxtConfirmationPipelineStep: Klasa: TxtConfirmationPipelineStep Adresaci: <instancji menedżer>, , 021971373, mattpeel @ silverstripe.com ShowMaintenancePipelineStep: Klasa: ShowMaintenancePipelineStep DeploymentPipelineStep: Klasa: DeploymentPipelineStep SmokeTestPipelineStepAfter: Klasa: SmokeTestPipelineStep PerformTestOn: "ThisEnvironment" HideMaintenancePipelineStep: Klasa: HideMaintenancePipelineStep
PipelineConfig: OnSuccessNotify: <instancji menedżer>, , ops @ silverstripe.com OnFailureNotify: <instancji menedżer>, , ops @ silverstripe.com DependsOnProject: "project1" DependsOnEnvironment: "dev" kroki: SmokeTestPipelineStepBefore: Klasa: SmokeTestPipelineStep PerformTestOn: "DependentEnvironment" ShowMaintenancePipelineStep: Klasa: ShowMaintenancePipelineStep DeploymentPipelineStep: Klasa: DeploymentPipelineStep SmokeTestPipelineStepAfter: Klasa: SmokeTestPipelineStep PerformTestOn: "ThisEnvironment" HideMaintenancePipelineStep: Klasa: HideMaintenancePipelineStep
Strona ## Dev (project1-dev.yml) PipelineConfig: OnSuccessNotify: <instancji menedżer>, , ops @ silverstripe.com OnFailureNotify: <instancji menedżer>, , ops @ silverstripe.com
Na przykład, nie można uruchomić SmokeTestPipelineStep z "PerformTestOn 'z' DependentEnvironment" jak jest
kroki: ShowMaintenancePipelineStep: Klasa: ShowMaintenancePipelineStep DeploymentPipelineStep: Klasa: DeploymentPipelineStep SmokeTestPipelineStepAfter: Klasa: SmokeTestPipelineStep PerformTestOn: "ThisEnvironment" HideMaintenancePipelineStep: Klasa: HideMaintenancePipelineStep `` `