diff --git a/articles/2016/uvod-do-gitlab-ci.md b/articles/2016/uvod-do-gitlab-ci.md
new file mode 100644
index 0000000000000000000000000000000000000000..1442033c5b3bafc21e00ca1745236bc2e23914de
--- /dev/null
+++ b/articles/2016/uvod-do-gitlab-ci.md
@@ -0,0 +1,160 @@
+```
+title = "Ăšvod do GitLab CI"
+perex = "Stručný úvod do nástroje continuous integration, který je integrován do GitLabu. Zaměříme se na základní používání a nastavení."
+tagy = ["Článek", "Programování", "GitLab", "CI"]
+image = "ci-lead.png"
+lang = "yaml"
+
+```
+# Ăšvod
+CI je zkratkou continuous integration - česky průběžná integrace. Využívá se u systémů správy verzí (Git, Subversion, ...) hlavně pro automatické testování kódu. Obecně lze CI využít k provedení jakýhkoliv příkazů či skriptů na daném projektu, po nahrání nových změn do repozitáře. Například když spravujete větší projekt, do kterého přispívá několik vývojářů, tak díky CI vidíte na první pohled, jestli začleňované změny fungují a jestli celý projekt nerozbijí. Více informací na [wiki](https://cs.wikipedia.org/wiki/Pr%C5%AFb%C4%9B%C5%BEn%C3%A1_integrace).
+
+# GitLab
+Gitlab je komplexní aplikace, která od verze 8 plně integruje CI (dříve se jednalo o samostatnou aplikaci). Každý projekt má standardně CI povolené. Pokud ho u daného projektu nepotřebujeme, tak je dobré jít do nastavení projektu a CI zakázat.
+
+Při správně nastaveném CI dojde po pushnutí nových commitů k jejich buildu (sestavení) - provedou se akce, které jsou definovány v souboru `.gitlab-ci.yml`. V záložce build poté můžeme sledovat, zda build proběhl správně nebo jestli se vyskytla chyba.
+
+![Výpis buidů](vypis_buildu.png =512x)
+
+# GitLab Runner
+Jedná se o program, který vykonává samotný build pro projekt. Může být na vzdáleném serveru nebo i na Vašem počítači. [Více informací](https://about.gitlab.com/gitlab-ci/#gitlab-runner) + [návod na instalaci](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner#install-gitlab-runner).
+
+# .gitlab-ci.yml
+Tímto souborem se nastavují akce, které se provádí při buildu. Soubor je součástí projektu, což sebou přináší řadu výhod - verzování, ostatní se mohou inspirovat a [další](https://about.gitlab.com/2015/05/06/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml/).
+
+Jedná se o soubor ve formátu [YAML](https://cs.wikipedia.org/wiki/YAML) takže je důležité, aby se pro odsazování používaly 4 mezery, protože tabulátor není podporovaný!
+
+Pro kontrolu syntaxe je výhodné použít [CI lint](https://git.ok1kvk.cz/ci/lint).
+
+Úplně základní .gitlab-ci.yml může vypadat takto:
+```
+before_script:
+  - avr-gcc --version
+  - which avr-gcc
+  - find /usr/share/cmake/Modules -name "Findavr.cmake"
+
+build-hex:
+  script:
+    - mkdir build
+    - cd build
+    - cmake ..
+    - make
+
+  artifacts:
+    paths:
+      - build/program.hex
+
+```
+
+- `before_script:` - určuje, co se má vykonat před buildem - tady je dobré otestovat/nainstalovat balíčky, které jsou potřebné pro další operace
+- `build-hex:` - akce, kterou jsem pojmenoval *build-hex*
+  - `script:` - určuje příkazy, které se mají vykonat - tedy v tomto případě se zkompiluje program pro mikroprocesor z rodiny AVR
+  - `artifacts:` - určuje soubory nebo i celé složky, které se nahrají do GitLabu a budou dostupné pro stažení - tedy zde se nahraje výsledný HEX soubor
+  - těchto akcí může být víc, například pro více typů mikroprocesorů, mohou se provést testy a podobně - tyto akce poté běží paralelně a nezávisle na sobě
+
+Více informací o možnostech nastavení naleznete přehledně [zde](http://doc.gitlab.com/ce/ci/yaml/README.html).
+
+# Závěr
+Po pushnutí `.gitlab-ci.yml` se provede první build, který můžete sledovat v záložce *Builds*. Po kliknutí na status daného commitu se dostanete do podrobností a uvidíte výpis z průběhu buildu, což je užitečné pro hledání chyb.
+```
+gitlab-ci-multi-runner 1.0.4 (014aa8c)
+Using Shell executor...
+Running on tesla.ok1kvk.cz...
+Fetching changes...
+HEAD is now at 04020a5 Add .gitlab-ci.yml
+From https://git.ok1kvk.cz/namespace/program
+   04020a5..bb086a9  master     -> origin/master
+Checking out bb086a97 as master...
+Previous HEAD position was 04020a5... Add .gitlab-ci.yml
+HEAD is now at bb086a9... Removed installation of dependecies
+$ avr-gcc --version
+avr-gcc (Fedora 4.9.3-1.fc23) 4.9.3
+Copyright (C) 2015 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+$ which avr-gcc
+/usr/lib64/ccache/avr-gcc
+$ find /usr/share/cmake/Modules -name "Findavr.cmake"
+/usr/share/cmake/Modules/Findavr.cmake
+$ mkdir build
+$ cd build
+$ cmake ..
+-- The C compiler identification is GNU 5.3.1
+-- The CXX compiler identification is GNU 5.3.1
+-- Check for working C compiler: /usr/lib64/ccache/cc
+-- Check for working C compiler: /usr/lib64/ccache/cc -- works
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- Check for working CXX compiler: /usr/lib64/ccache/c++
+-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Current uploadtool is: avrdude
+-- Current programmer is: usbasp
+-- Current upload port is: usb
+-- Current uploadtool options are:
+-- Current MCU is set to: atmega32
+-- Current H_FUSE is set to: 0xC8
+-- Current L_FUSE is set to: 0x1F
+-- Set CMAKE_FIND_ROOT_PATH to /usr/avr
+-- Set CMAKE_SYSTEM_INCLUDE_PATH to /usr/avr/include
+-- Set CMAKE_SYSTEM_LIBRARY_PATH to /usr/avr/lib
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /home/gitlab-runner/builds/bb8725f4/0/namespace/program/build
+$ make
+Scanning dependencies of target program.elf
+[ 11%] Building CXX object CMakeFiles/program.elf.dir/main.cpp.o
+[ 22%] Building CXX object CMakeFiles/program.elf.dir/bootloader.cpp.o
+/home/gitlab-runner/builds/bb8725f4/0/namespace/program/bootloader.cpp: In member function 'void bootloader::send_all_programmed_memory_back()':
+/home/gitlab-runner/builds/bb8725f4/0/namespace/program/bootloader.cpp:148:59: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+         for (uint16_t address = current_page*SPM_PAGESIZE; address < (current_page+1)*SPM_PAGESIZE; address++)
+                                                           ^
+[ 33%] Building CXX object CMakeFiles/program.elf.dir/spisimple.cpp.o
+[ 44%] Building CXX object CMakeFiles/program.elf.dir/MCP2515.cpp.o
+[ 55%] Building CXX object CMakeFiles/program.elf.dir/wait.cpp.o
+[ 66%] Building CXX object CMakeFiles/program.elf.dir/cplusplus.cpp.o
+[ 77%] Linking CXX executable program.elf
+[ 77%] Built target program.elf
+Scanning dependencies of target program
+[ 88%] Generating program.hex
+AVR Memory Usage
+----------------
+Device: atmega32
+
+Program:    2904 bytes (8.9% Full)
+(.text + .data + .bootloader)
+
+Data:        135 bytes (6.6% Full)
+(.data + .bss + .noinit)
+
+
+[100%] Generating program-eeprom.hex
+[100%] Built target program
+Archiving artifacts...
+build/program.hex: found 1 matching files
+Creating archive artifacts.zip ...
+Done!
+Uploading artifacts...
+Uploading artifacts to coordinator... ok            id=19 token=wYfG9wtk
+
+Build succeeded.
+```
+
+Pokud chcete někam umístit status posledníhu buidu, tak ho naleznete na této adrese: https://git.ok1kvk.cz/namespace/project/badges/branch/build.svg
+
+# Zdroje
+- https://about.gitlab.com/gitlab-ci/
+- http://doc.gitlab.com/ce/ci/quick_start/
+- https://about.gitlab.com/2015/12/14/getting-started-with-gitlab-and-gitlab-ci/
+- http://doc.gitlab.com/ce/ci/yaml/README.html
+- https://gitlab.com/groups/gitlab-examples
+- http://doc.gitlab.com/ce/ci/
+
+# Dejte nám vědět!
+Napište nám na naše [fórum](https://ok1kvk.cz/forum).