Skip to content
Snippets Groups Projects
Unverified Commit 2937c26e authored by Vít Starý Novotný's avatar Vít Starý Novotný
Browse files

Add exercise about continuous integration

parent 693adbf9
No related branches found
No related tags found
1 merge request!22Add an exercise about continuous integration
Pipeline #
...@@ -417,17 +417,122 @@ ...@@ -417,17 +417,122 @@
</span> </span>
</h2> </h2>
<p> <p>
Tato sekce bude obsahovat studijní materiály, které zatím nejsou Další způsob automatizace se nazývá <em>průběžná integrace</em>
přichystané. (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>
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%[===================&gt;] 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/>
&nbsp;1 file changed, 9 insertions(+)<br/>
&nbsp;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/>
&nbsp;&nbsp;&nbsp;18f0fe6..90da3a6&nbsp;&nbsp;main -&gt; 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"> <div class="tip-box">
<p> <p>
<strong class="tip-headline">Tip:</strong> <strong class="tip-headline">Tip:</strong>
V případě zájmu si můžete zatím prohlédnout připravovaný článek Pro informace o průběžné integraci TeXových dokumentů jinde než na
<a href="https://www.overleaf.com/read/ypbzywphcgdc#e30de3"><em>Příprava (La)TeXových dokumentů v cloudu</em></a> GitLabu FI vizte připravovaný článek
pro <a href="https://bulletin.cstug.cz/">Zpravodaj CSTUGu</a>, <a href="https://www.overleaf.com/read/ypbzywphcgdc#e30de3"><em>Příprava (La)TeXových dokumentů v cloudu</em></a>.
který se zaobírá průběžnou integrací v kontextu přípravy elektronických
dokumentů.
</p> </p>
<p> <p>
Na článek se vztahuje Na článek se vztahuje
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment