{"id":14950,"date":"2025-03-17T09:21:07","date_gmt":"2025-03-17T08:21:07","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=14950"},"modified":"2025-03-17T09:21:07","modified_gmt":"2025-03-17T08:21:07","slug":"ci-cd-automatyzacja-wdrozen","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/","title":{"rendered":"CI\/CD \u2013 automatyzacja wdro\u017ce\u0144"},"content":{"rendered":"<p data-start=\"77\" data-end=\"329\">CI\/CD (Continuous Integration \/ Continuous Deployment) to metodologia automatyzacji proces\u00f3w tworzenia, testowania i wdra\u017cania aplikacji. Dzi\u0119ki niej zespo\u0142y deweloperskie mog\u0105 szybciej i sprawniej dostarcza\u0107 nowe funkcje, poprawki oraz aktualizacje.<\/p>\n<p data-start=\"331\" data-end=\"632\"><strong data-start=\"331\" data-end=\"362\">Continuous Integration (CI)<\/strong> polega na regularnym \u0142\u0105czeniu zmian w kodzie do wsp\u00f3lnego repozytorium i ich automatycznym testowaniu.<br data-start=\"465\" data-end=\"468\" \/><strong data-start=\"468\" data-end=\"498\">Continuous Deployment (CD)<\/strong> to proces, w kt\u00f3rym przetestowany kod jest automatycznie wdra\u017cany na serwer produkcyjny, eliminuj\u0105c konieczno\u015b\u0107 r\u0119cznej ingerencji.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/#Korzysci_stosowania_CICD\" >Korzy\u015bci stosowania CI\/CD<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/#Kluczowe_elementy_CICD\" >Kluczowe elementy CI\/CD<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/#Jak_wdrozyc_CICD_w_praktyce\" >Jak wdro\u017cy\u0107 CI\/CD w praktyce?<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/#Najlepsze_praktyki_CICD\" >Najlepsze praktyki CI\/CD<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/ci-cd-automatyzacja-wdrozen\/#Podsumowanie\" >Podsumowanie<\/a><\/li><\/ul><\/nav><\/div>\n<h2 data-start=\"634\" data-end=\"666\"><span class=\"ez-toc-section\" id=\"Korzysci_stosowania_CICD\"><\/span><strong data-start=\"637\" data-end=\"666\">Korzy\u015bci stosowania CI\/CD<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul data-start=\"667\" data-end=\"1133\">\n<li data-start=\"667\" data-end=\"768\"><strong data-start=\"669\" data-end=\"704\">Skr\u00f3cenie czasu wdra\u017cania zmian<\/strong> \u2013 automatyzacja pozwala na szybsze dostarczanie nowych funkcji.<\/li>\n<li data-start=\"769\" data-end=\"848\"><strong data-start=\"771\" data-end=\"790\">Redukcja b\u0142\u0119d\u00f3w<\/strong> \u2013 automatyczne testy wykrywaj\u0105 problemy przed wdro\u017ceniem.<\/li>\n<li data-start=\"849\" data-end=\"942\"><strong data-start=\"851\" data-end=\"873\">Lepsza jako\u015b\u0107 kodu<\/strong> \u2013 cz\u0119ste iteracje i testy pomagaj\u0105 utrzyma\u0107 wysok\u0105 jako\u015b\u0107 aplikacji.<\/li>\n<li data-start=\"943\" data-end=\"1024\"><strong data-start=\"945\" data-end=\"977\">\u0141atwiejsze wykrywanie b\u0142\u0119d\u00f3w<\/strong> \u2013 szybkie identyfikowanie przyczyny problem\u00f3w.<\/li>\n<li data-start=\"1025\" data-end=\"1133\"><strong data-start=\"1027\" data-end=\"1052\">Zwi\u0119kszona stabilno\u015b\u0107<\/strong> \u2013 dzi\u0119ki testom regresji i automatycznym wdro\u017ceniom aplikacja dzia\u0142a stabilniej.<\/li>\n<\/ul>\n<div id=\"dhost-3008687716\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2 data-start=\"1135\" data-end=\"1165\"><span class=\"ez-toc-section\" id=\"Kluczowe_elementy_CICD\"><\/span><strong data-start=\"1138\" data-end=\"1165\">Kluczowe elementy CI\/CD<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol data-start=\"1166\" data-end=\"1515\">\n<li data-start=\"1166\" data-end=\"1234\"><strong data-start=\"1169\" data-end=\"1201\">Repozytorium kodu \u017ar\u00f3d\u0142owego<\/strong> \u2013 np. GitHub, GitLab, Bitbucket.<\/li>\n<li data-start=\"1235\" data-end=\"1314\"><strong data-start=\"1238\" data-end=\"1265\">Automatyczne testowanie<\/strong> \u2013 testy jednostkowe, integracyjne, akceptacyjne.<\/li>\n<li data-start=\"1315\" data-end=\"1389\"><strong data-start=\"1318\" data-end=\"1334\">System CI\/CD<\/strong> \u2013 np. GitHub Actions, GitLab CI\/CD, Jenkins, CircleCI.<\/li>\n<li data-start=\"1390\" data-end=\"1453\"><strong data-start=\"1393\" data-end=\"1419\">\u015arodowiska wdro\u017ceniowe<\/strong> \u2013 staging (testowe), produkcyjne.<\/li>\n<li data-start=\"1454\" data-end=\"1515\"><strong data-start=\"1457\" data-end=\"1474\">Monitorowanie<\/strong> \u2013 logowanie, alerty, analizy wydajno\u015bci.<\/li>\n<\/ol>\n<h2 data-start=\"1517\" data-end=\"1553\"><span class=\"ez-toc-section\" id=\"Jak_wdrozyc_CICD_w_praktyce\"><\/span><strong data-start=\"1520\" data-end=\"1553\">Jak wdro\u017cy\u0107 CI\/CD w praktyce?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 data-start=\"1554\" data-end=\"1579\"><strong data-start=\"1558\" data-end=\"1579\">1. Wyb\u00f3r narz\u0119dzi<\/strong><\/h3>\n<p data-start=\"1580\" data-end=\"1606\">Popularne narz\u0119dzia CI\/CD:<\/p>\n<ul data-start=\"1607\" data-end=\"1832\">\n<li data-start=\"1607\" data-end=\"1672\"><strong data-start=\"1609\" data-end=\"1620\">Jenkins<\/strong> \u2013 otwarte oprogramowanie do automatyzacji proces\u00f3w.<\/li>\n<li data-start=\"1673\" data-end=\"1726\"><strong data-start=\"1675\" data-end=\"1691\">GitLab CI\/CD<\/strong> \u2013 zintegrowane narz\u0119dzie w GitLab.<\/li>\n<li data-start=\"1727\" data-end=\"1780\"><strong data-start=\"1729\" data-end=\"1747\">GitHub Actions<\/strong> \u2013 CI\/CD dla repozytori\u00f3w GitHub.<\/li>\n<li data-start=\"1781\" data-end=\"1832\"><strong data-start=\"1783\" data-end=\"1806\">CircleCI, Travis CI<\/strong> \u2013 us\u0142ugi CI\/CD w chmurze.<\/li>\n<\/ul>\n<h3 data-start=\"1834\" data-end=\"1871\"><strong data-start=\"1838\" data-end=\"1871\">2. Tworzenie pipeline\u2019u CI\/CD<\/strong><\/h3>\n<p data-start=\"1872\" data-end=\"1913\">Pipeline CI\/CD sk\u0142ada si\u0119 z kilku etap\u00f3w:<\/p>\n<ol data-start=\"1914\" data-end=\"2207\">\n<li data-start=\"1914\" data-end=\"1981\"><strong data-start=\"1917\" data-end=\"1934\">Commit &amp; Push<\/strong> \u2013 zmiany w kodzie s\u0105 wysy\u0142ane do repozytorium.<\/li>\n<li data-start=\"1982\" data-end=\"2018\"><strong data-start=\"1985\" data-end=\"1994\">Build<\/strong> \u2013 kompilacja aplikacji.<\/li>\n<li data-start=\"2019\" data-end=\"2079\"><strong data-start=\"2022\" data-end=\"2031\">Testy<\/strong> \u2013 automatyczne testy jednostkowe, integracyjne.<\/li>\n<li data-start=\"2080\" data-end=\"2149\"><strong data-start=\"2083\" data-end=\"2097\">Deployment<\/strong> \u2013 wdro\u017cenie kodu na \u015brodowisko staging\/produkcyjne.<\/li>\n<li data-start=\"2150\" data-end=\"2207\"><strong data-start=\"2153\" data-end=\"2170\">Monitorowanie<\/strong> \u2013 sprawdzanie poprawno\u015bci wdro\u017cenia.<\/li>\n<\/ol>\n<h3 data-start=\"2209\" data-end=\"2259\"><strong data-start=\"2213\" data-end=\"2259\">3. Przyk\u0142adowa konfiguracja GitHub Actions<\/strong><\/h3>\n<p>Plik <code class=\"\" data-line=\"\">.github\/workflows\/ci-cd.yml<\/code>:<\/p>\n<pre><code class=\"language-php\" data-line=\"\">name: CI\/CD Pipeline\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Pobranie repozytorium\n        uses: actions\/checkout@v3\n\n      - name: Instalacja zale\u017cno\u015bci\n        run: npm install\n\n      - name: Budowanie aplikacji\n        run: npm run build\n\n      - name: Testy jednostkowe\n        run: npm test\n\n  deploy:\n    needs: build\n    runs-on: ubuntu-latest\n    steps:\n      - name: Wdro\u017cenie na serwer\n        run: |\n          ssh user@server &quot;cd \/app &amp;&amp; git pull &amp;&amp; npm install &amp;&amp; pm2 restart app&quot;\n<\/code><\/pre>\n<h3 data-start=\"2870\" data-end=\"2904\"><strong data-start=\"2874\" data-end=\"2904\">4. Automatyczne testowanie<\/strong><\/h3>\n<ul data-start=\"2905\" data-end=\"3074\">\n<li data-start=\"2905\" data-end=\"2961\"><strong data-start=\"2907\" data-end=\"2928\">Testy jednostkowe<\/strong> \u2013 sprawdzaj\u0105 pojedyncze funkcje.<\/li>\n<li data-start=\"2962\" data-end=\"3019\"><strong data-start=\"2964\" data-end=\"2986\">Testy integracyjne<\/strong> \u2013 sprawdzaj\u0105 wsp\u00f3\u0142prac\u0119 modu\u0142\u00f3w.<\/li>\n<li data-start=\"3020\" data-end=\"3074\"><strong data-start=\"3022\" data-end=\"3048\">Testy e2e (end-to-end)<\/strong> \u2013 testuj\u0105 ca\u0142\u0105 aplikacj\u0119.<\/li>\n<\/ul>\n<p data-start=\"3076\" data-end=\"3104\">Przyk\u0142adowy test w <strong data-start=\"3095\" data-end=\"3103\">Jest<\/strong>:<\/p>\n<pre><code class=\"language-php\" data-line=\"\">test(&#039;Sprawdzenie poprawnego dodawania&#039;, () =&gt; {\n  expect(2 + 2).toBe(4);\n});\n<\/code><\/pre>\n<h3 data-start=\"3202\" data-end=\"3244\"><strong data-start=\"3206\" data-end=\"3244\">5. Wdro\u017cenie na serwer produkcyjny<\/strong><\/h3>\n<p data-start=\"3245\" data-end=\"3314\">Mo\u017cemy u\u017cy\u0107 <strong data-start=\"3257\" data-end=\"3267\">Docker<\/strong>, <strong data-start=\"3269\" data-end=\"3283\">Kubernetes<\/strong> lub skrypt\u00f3w SSH do wdro\u017cenia.<\/p>\n<p data-start=\"3316\" data-end=\"3355\">Przyk\u0142adowe wdro\u017cenie z Docker Compose:<\/p>\n<pre><code class=\"language-php\" data-line=\"\">version: &#039;3&#039;\nservices:\n  app:\n    image: my-app:latest\n    ports:\n      - &quot;80:80&quot;\n<\/code><\/pre>\n<h2 data-start=\"3451\" data-end=\"3482\"><span class=\"ez-toc-section\" id=\"Najlepsze_praktyki_CICD\"><\/span><strong data-start=\"3454\" data-end=\"3482\">Najlepsze praktyki CI\/CD<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul data-start=\"3483\" data-end=\"3741\">\n<li data-start=\"3483\" data-end=\"3532\"><strong data-start=\"3485\" data-end=\"3508\">Wdra\u017caj ma\u0142e zmiany<\/strong> \u2013 \u0142atwiej wykry\u0107 b\u0142\u0119dy.<\/li>\n<li data-start=\"3533\" data-end=\"3605\"><strong data-start=\"3535\" data-end=\"3561\">Automatyzuj testowanie<\/strong> \u2013 ka\u017cda zmiana powinna przej\u015b\u0107 przez testy.<\/li>\n<li data-start=\"3606\" data-end=\"3658\"><strong data-start=\"3608\" data-end=\"3631\">Monitoruj wdro\u017cenia<\/strong> \u2013 np. Prometheus, Grafana.<\/li>\n<li data-start=\"3659\" data-end=\"3741\"><strong data-start=\"3661\" data-end=\"3684\">Zabezpiecz pipeline<\/strong> \u2013 kontroluj uprawnienia, u\u017cywaj skaner\u00f3w bezpiecze\u0144stwa.<\/li>\n<\/ul>\n<h2 data-start=\"3743\" data-end=\"3762\"><span class=\"ez-toc-section\" id=\"Podsumowanie\"><\/span><strong data-start=\"3746\" data-end=\"3762\">Podsumowanie<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"3763\" data-end=\"4053\">CI\/CD to kluczowa praktyka w nowoczesnym developmentcie, kt\u00f3ra przyspiesza wdra\u017canie kodu i zwi\u0119ksza jego jako\u015b\u0107. Dzi\u0119ki automatyzacji test\u00f3w i deploymentu firmy mog\u0105 dostarcza\u0107 aplikacje szybciej i bezpieczniej. Warto wdro\u017cy\u0107 CI\/CD w swoim projekcie, by poprawi\u0107 efektywno\u015b\u0107 pracy zespo\u0142u.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[121,118],"manual_kb_tag":[5057,5056,5059,5058,5060,2997,5063,5065,655,5064,4047,5061,3517,5062,3516],"class_list":["post-14950","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manual_kb_tag-automatyzacja-wdrozen","manual_kb_tag-ci-cd","manual_kb_tag-continuous-deployment","manual_kb_tag-continuous-integration","manual_kb_tag-devops","manual_kb_tag-docker","manual_kb_tag-github-actions","manual_kb_tag-gitlab-ci-cd","manual_kb_tag-hosting","manual_kb_tag-jenkins","manual_kb_tag-kubernetes","manual_kb_tag-pipeline-ci-cd","manual_kb_tag-polski-hosting","manual_kb_tag-testy-automatyczne","manual_kb_tag-web-hosting"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/14950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":3,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/14950\/revisions"}],"predecessor-version":[{"id":14953,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/14950\/revisions\/14953"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=14950"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=14950"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=14950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}