From 2937c26ec7e00989497e8221ae6832084891e8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Star=C3=BD=20Novotn=C3=BD?= <witiko@mail.muni.cz> Date: Tue, 15 Oct 2024 15:55:33 +0200 Subject: [PATCH] Add exercise about continuous integration --- .../practices/automatizace-sazby/content.html | 119 ++++++++++++++++-- 1 file changed, 112 insertions(+), 7 deletions(-) diff --git a/public/practices/automatizace-sazby/content.html b/public/practices/automatizace-sazby/content.html index 96f6dd8..944496e 100644 --- a/public/practices/automatizace-sazby/content.html +++ b/public/practices/automatizace-sazby/content.html @@ -417,17 +417,122 @@ </span> </h2> <p> - Tato sekce bude obsahovat studijnĂ materiály, kterĂ© zatĂm nejsou - pĹ™ichystanĂ©. + Dalšà zpĹŻsob automatizace se nazĂ˝vá <em>prĹŻběžná integrace</em> + (anglicky <em>continuous integration</em> nebo krátce <abbr>CI</a>) + a pojĂ se s programy pro správu verzĂ jako Git, kterĂ˝ jsme si + pĹ™edstavili v <a href="../sprava-verzi">dĹ™ĂvÄ›jšĂm cviÄŤenĂ</a>. </p> + <p> + PĹ™i práci s programem Git ÄŤasto pouĹľĂváme webovĂ© sluĹľby jako + <a href="https://gitlab.fi.muni.cz/">GitLab FI</a> a + <a href="https://github.com/">GitHub</a> pro sdĂlenĂ repozitářů a + spolupráci s dalšĂmi lidmi. PrĹŻběžná integrace nám umoĹľĹuje tyto + sluĹľby nastavit tak, aby se pĹ™i kaĹľdĂ© zmÄ›nÄ› repozitáře automaticky + spustil vĂ˝poÄŤetnĂ uzel, kterĂ˝ repozitář stáhne, vykoná nad nĂm zadanĂ© + pĹ™Ăkazy a zpĹ™ĂstupnĂ vytvoĹ™enĂ© soubory. + </p> + <div class="tip-box"> + <p> + PrĹŻběžnou integraci vyuĹľĂvá mj. i tento web. PĹ™i kaĹľdĂ© zmÄ›nÄ› + hlavnĂ vÄ›tve <tt>main</tt> v <a href="https://gitlab.fi.muni.cz/sojka/PB029_web">repozitáři s kĂłdem webu</a> + se pustĂ vĂ˝poÄŤetnĂ uzel, kterĂ˝ z kĂłdu vytvořà statickou webovou + stránku a zveĹ™ejnĂ ji na adrese <tt>https://sojka.pages.fi.muni.cz/PB029_web/</tt>. + </p> + <p> + Pro vĂce informacĂ vizte konfiguraÄŤnĂ soubor + <a href="https://gitlab.fi.muni.cz/sojka/PB029_web/-/blob/main/.gitlab-ci.yml"><tt>.gitlab-ci.yml</tt></a>, + kterĂ˝ prĹŻběžnou integraci webu Ĺ™ĂdĂ. + </p> + </div> + <p> + Ukážeme si, jak mĹŻĹľeme pomocĂ prĹŻběžnĂ© integrace automatizovat pĹ™Ăpravu + TeXovĂ˝ch dokumentĹŻ na <a href="https://gitlab.fi.muni.cz/">GitLabu FI</a>: + </p> + <ol> + <li> + StáhnÄ›te si repozitář s pohádkou o BĂlĂ© panĂ VrbenskĂ©, kterĂ˝ jsme + si vytvoĹ™ili na <a href="../sprava-verzi#tex">cviÄŤenĂ o správÄ› verzĂ</a>: + <code class="ukazka_kodu"> + $ <b>git clone https://gitlab.fi.muni.cz/<i>xnovot32</i>/PB029_sprava_verzi.git <i>xnovot32</i>_PB029_sprava_verzi</b><br/> + Cloning into "<i>xnovot32</i>_PB029_sprava_verzi"...<br/> + remote: Counting objects: 6, done.<br/> + remote: Compressing objects: 100% (4/4), done.<br/> + remote: Total 6 (delta 1), reused 0 (delta 0)<br/> + Receiving objects: 100% (6/6), done.<br/> + Resolving deltas: 100% (1/1), done.<br/> + Checking connectivity... done.<br/> + </code> + Pokud repozitář vytvoĹ™enĂ˝ nemáte, následujte kroky 1&endash;5 ze + <a href="../sprava-verzi#ex">cviÄŤenĂ o správÄ› verzĂ</a> a potĂ© + pokraÄŤujte zde. + </li> + <li> + StáhnÄ›te si <a href="">soubor s konfiguracĂ prĹŻběžnĂ© integrace</a> + a uloĹľte jej do koĹ™enovĂ©ho adresáře vašà pracovnĂ kopie: + <code class="ukazka_kodu"> + $ <b>cd <i>xnovot32</i>_PB029_sprava_verzi</b><br/> + $ <b>wget <a href="files/.gitlab-ci.yml">https://sojka.pages.fi.muni.cz/PB029_web/practices/automatizace-sazby/files/.gitlab-ci.yml</a></b><br/> + --2024-10-15 15:33:14-- https://sojka.pages.fi.muni.cz/PB029_web/practices/automatizace-sazby/files/.gitlab-ci.yml<br/> + Ukládám do: „.gitlab-ci.yml“<br/> + <br/> + dokument.tex 100%[===================>] 1,09K --.-KB/s in 0s <br/> + <br/> + 2024-10-15 15:33:14 (18,3 MB/s) – „.gitlab-ci.yml“ uloĹľeno [527/527]<br/> + </code> + Soubor si otevĹ™ete v textovĂ©m editoru a prohlĂ©dnÄ›te: + <code class="ukazka_kodu"> + $ <b>cat .gitlab-ci.yml<br/> + vysazej-dokument: + image: texlive/texlive:latest # NásledujĂcĂ kĂłd spouštÄ›j uvnitĹ™ dockerovĂ©ho obrazu „texlive/texlive“ s instalacĂ TeXu. + tags: + - shared-fi # PouĹľij vĂ˝poÄŤetnĂ uzly poskytovanĂ© Fakultou informatiky. NamĂsto nich bychom mohli vyuĹľĂt takĂ© vlastnĂ server. + script: + - xelatex dokument.tex # PĹ™eloĹľ soubor „dokument.tex“ pomocĂ TeXovĂ©ho stroje XeTeX s formátem LaTeX. + artifacts: + paths: + - dokument.pdf # UloĹľ a zpĹ™Ăstupni vytvoĹ™enĂ˝ soubor „dokument.pdf“. + </code> + </li> + <li> + NáslednÄ› dokument pĹ™idejte do seznamu souborĹŻ spravovanĂ˝ch + systĂ©mem Git a vloĹľte jako dalšà revizi do svĂ©ho lokálnĂho + repozitáře. + <code class="ukazka_kodu"> + $ <b>git add .gitlab-ci.yml</b> + $ <b>git commit --message "VloĹľen konfiguraÄŤnĂ soubor prĹŻběžnĂ© integrace."</b><br/> + [main eaf82bb] VloĹľen konfiguraÄŤnĂ soubor prĹŻběžnĂ© integrace.<br/> + 1 file changed, 9 insertions(+)<br/> + create mode 100644 .gitlab-ci.yml<br/> + </code> + NáslednÄ› svĂ© zmÄ›ny odešlete do vašeho repozitáře na fakultnĂm + serveru. + <code class="ukazka_kodu"> + $ <b>git push</b><br/> + Counting objects: 3, done.<br/> + Delta compression using up to 2 threads.<br/> + Compressing objects: 100% (2/2), done.<br/> + Writing objects: 100% (3/3), 981 bytes | 0 bytes/s, done.<br/> + Total 3 (delta 0), reused 0 (delta 0)<br/> + To https://gitlab.fi.muni.cz/<i>xnovot32</i>/PB029_sprava_verzi.git<br/> + 18f0fe6..90da3a6 main -> main<br/> + </code> + </li> + <li> + Stav pĹ™ekladu dokumentu mĹŻĹľete sledovat na adrese + <a href="https://gitlab.fi.muni.cz/xnovot32/PB029-sprava-verzi/-/jobs">https://gitlab.fi.muni.cz/<i>xnovot32</i>/PB029-sprava-verzi/-/jobs</a>. + </li> + <li> + Po ĂşspěšnĂ©m pĹ™ekladu si mĹŻĹľete vytvoĹ™enĂ© soubory prohlĂ©dnout a + stáhnout na perzistentnĂ adrese + <a href="https://gitlab.fi.muni.cz/xnovot32/PB029-sprava-verzi/-/jobs/artifacts/main/browse?job=vysazej-dokument">https://gitlab.fi.muni.cz/xnovot32/<i>PB029-sprava-verzi</i>/-/jobs/artifacts/main/browse?job=vysazej-dokument</a>. + </li> + </ol> <div class="tip-box"> <p> <strong class="tip-headline">Tip:</strong> - V pĹ™ĂpadÄ› zájmu si mĹŻĹľete zatĂm prohlĂ©dnout pĹ™ipravovanĂ˝ ÄŤlánek - <a href="https://www.overleaf.com/read/ypbzywphcgdc#e30de3"><em>PĹ™Ăprava (La)TeXovĂ˝ch dokumentĹŻ v cloudu</em></a> - pro <a href="https://bulletin.cstug.cz/">Zpravodaj CSTUGu</a>, - kterĂ˝ se zaobĂrá prĹŻběžnou integracĂ v kontextu pĹ™Ăpravy elektronickĂ˝ch - dokumentĹŻ. + Pro informace o prĹŻběžnĂ© integraci TeXovĂ˝ch dokumentĹŻ jinde neĹľ na + GitLabu FI vizte pĹ™ipravovanĂ˝ ÄŤlánek + <a href="https://www.overleaf.com/read/ypbzywphcgdc#e30de3"><em>PĹ™Ăprava (La)TeXovĂ˝ch dokumentĹŻ v cloudu</em></a>. </p> <p> Na ÄŤlánek se vztahuje -- GitLab