From 96b7518fbebf033da8680e34605e56e77f6270a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zi=C4=99tkiewicz?= Date: Tue, 23 Mar 2021 17:22:49 +0100 Subject: [PATCH 1/2] Poprawki do IUM_03 --- IUM_03.CI-Jenkins.ipynb | 21 +++++++++++---------- IUM_03/help.png | Bin 0 -> 763 bytes 2 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 IUM_03/help.png diff --git a/IUM_03.CI-Jenkins.ipynb b/IUM_03.CI-Jenkins.ipynb index fef2fc8..6628a88 100644 --- a/IUM_03.CI-Jenkins.ipynb +++ b/IUM_03.CI-Jenkins.ipynb @@ -4,7 +4,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Ciągła integracja \n", + "# System ciągłej integracji na przykładzie Jenkins" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ciągła integracja \n", " - Jest to praktyka rozwoju projektów informatycznych polegająca na bardzo częstym włączaniu nowych zmian do głównej gałęzi (branch)\n", " - Dzięki jej stosowaniu nie dochodzi do konfliktów przy łączeniu (mergowaniu) gałęzi rozwojowej (feature branch) z główną (master)\n", " - Żeby stosować tę technikę, zmiany muszą być za każdym razem przetestowane, we wspólnym środowisku, tak, żeby działały u innych deweloperów\n", @@ -110,7 +117,8 @@ "source": [ "## Dokumentacja\n", "- https://www.jenkins.io/doc/book/pipeline/\n", - "- \"Pipeline syntax\" na stronie każdego projektu, np: http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/" + "- \"Pipeline syntax\" na stronie każdego projektu, np: http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/\n", + "- Znaki zapytania (W konfiguracji joba oraz w \"Pipeline Syntax\")" ] }, { @@ -307,7 +315,7 @@ " ```\n", " - Jenkins natomiast umożliwia utworzenie parametru typu password, którego wartość nie jest nigdzie zapisywana (wartości pozostałych parametrów są zapisywane w zakładce \"Parameters\" każdego build-a, np. [tutaj](http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/1/parameters/)\n", " - konstukcja `withEnv` w Jenkinsfile, pozwala wywołać wszystkie otoczone nią polecenia z wyeksportowanymi wartościami zmiennych systemowych. Pozwala to np. przekazać wartości parametrów zadania Jenkinsowego do shella (poleceń wywoływanych z `sh`). \n", - " - ten sam rezultat co przy wykorzystaniu `withEnv` możnaby osiągnąć wywołując: `sh \"KAGGLE_USERNAME=${params.KAGGLE_USERNAME} KAGGLE_KEY=${params.KAGGLE_KEY} kaggle datasets list`, ale ten pierwszy wydahe się bardziej elegancki\n", + " - ten sam rezultat co przy wykorzystaniu `withEnv` można by osiągnąć wywołując: `sh \"KAGGLE_USERNAME=${params.KAGGLE_USERNAME} KAGGLE_KEY=${params.KAGGLE_KEY} kaggle datasets list`, ale ten pierwszy wydahe się bardziej elegancki\n", " - Poniżej przykładowy projekt, który pokazuje jak wywołać Kaggle CLI używając hasła podanego w parametrach zadania:\n", " \n", "http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/kaggle-CLI-example/\n", @@ -387,13 +395,6 @@ " - Skrypt powinien zapisywać wyniki swojego działania do pliku\n", " 4. Plik powstały w kroku 3. należy archiwizować (krok \"archiveArtifacts\")" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/IUM_03/help.png b/IUM_03/help.png new file mode 100644 index 0000000000000000000000000000000000000000..bedcb7d1de43ada40c06a54b7cea51333f5c62a1 GIT binary patch literal 763 zcmVS7;mS8Ryw(Ut-!LCfl>EdLL$R#STke<$yUEAIQzvNr#`wO zHm3nr{y7ZAQiANXqGr}l3SM{J5L@n=VfSNe9DHdHefJDd=^NtX(ob((`Q-y0_e|te zv}4s}{cK9W8|DbH_pv3`Tr-#eKe5K4R}T1M7!B#zIAk&zG@R3MTOkN{m4flvI2NNM zJ}WNi@ums(KefWfTPD~=%%+-8esE<2M#U|<3=dVq@KiGb&$XlQ$0`{dz62{N!ITRh zbwaW2zBvh$Esno)#*M$e$gAo?K}|Pa>O|p{ZVcWT#^a+&0vsdCQB>Q5)mII&r-H}? zCsktCV=Ekf?SM0%-EmXSAEthJunI218~s>(GEKyH%T)ZbNk@KdFWjO^8RCNWR2oGz zH6L`tS?w3TdE%v31g7MhMKXR8pqyhioMUS+%oStXJySM~Q-vh=N=i-NXBINDU;Tl_w z;s#PwByc~Bqs42l8BUe*!e-if$5iAPS|}?d!Q%=f;1P}GjeYQmuVi-IHy4rIFKnj8 t+IiI#{cK_;kB&9h46|v#{tsJr1^_}Uo}A7<*P8$U002ovPDHLkV1g00Wa0n- literal 0 HcmV?d00001 From 434f6b6c2ac7cc11d8e4f188d7a7faf799bfd80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zi=C4=99tkiewicz?= Date: Wed, 24 Mar 2021 11:54:48 +0100 Subject: [PATCH 2/2] Zmieniono adresu http na https --- IUM_03.CI-Jenkins.ipynb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/IUM_03.CI-Jenkins.ipynb b/IUM_03.CI-Jenkins.ipynb index 6628a88..85bf791 100644 --- a/IUM_03.CI-Jenkins.ipynb +++ b/IUM_03.CI-Jenkins.ipynb @@ -73,7 +73,7 @@ " - **Job, aka. Pipleine (Projekt)** - podstawowa jednostka organizacji pracy wykonywanej przez Jenkinsa. \n", " - Posiada swoją konfigurację, która określa jakie polecenia będą wykonywane w jego ramach. \n", " - Jeden pipeline może być wykonany wiele razy, za każdym razem tworząc nowe *Zadanie* (*Build*). \n", - " Przykładowy pipeline: http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/\n", + " Przykładowy pipeline: https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/\n", "\n" ] }, @@ -86,10 +86,10 @@ " - Unstable \n", " - Aborted \n", " - Failed \n", - " Np: http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/2/\n", + " Np: https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/2/\n", " - Śledzenie wyników działania buildu jak i debugowanie ewentualnych problemów ułatwiają:\n", - " - Wyjście z konsoli [(Console Output)](http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/10/console) - tutaj widać logi wypisywane zarówno przez polecenia/funkcje Jenkinsowe jak i standardowe wyjście / wyjście błędów wykonywanych poleceń systemowych\n", - " - Workspace - to katalog roboczy, w którym uruchamiane są polecenia. Tutaj zostaje sklonowane repozytorium (jeśli je klonujemy), tu wywoływane będę polecenia systemowe. Można je przeglądać z poziomu przeglądarki, np. [tutaj](http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/1/execution/node/3/ws/)\n", + " - Wyjście z konsoli [(Console Output)](https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/10/console) - tutaj widać logi wypisywane zarówno przez polecenia/funkcje Jenkinsowe jak i standardowe wyjście / wyjście błędów wykonywanych poleceń systemowych\n", + " - Workspace - to katalog roboczy, w którym uruchamiane są polecenia. Tutaj zostaje sklonowane repozytorium (jeśli je klonujemy), tu wywoływane będę polecenia systemowe. Można je przeglądać z poziomu przeglądarki, np. [tutaj](https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/1/execution/node/3/ws/)\n", " - Każdy uruchomiony build można zatrzymać (abort) co powoduje zaprzestanie jego wykonywania\n", " - Build zakończony można usunąć (np. jeśli przez przypadek wypisaliśmy na konsolę nasze hasło)" ] @@ -117,7 +117,7 @@ "source": [ "## Dokumentacja\n", "- https://www.jenkins.io/doc/book/pipeline/\n", - "- \"Pipeline syntax\" na stronie każdego projektu, np: http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/\n", + "- \"Pipeline syntax\" na stronie każdego projektu, np: https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/\n", "- Znaki zapytania (W konfiguracji joba oraz w \"Pipeline Syntax\")" ] }, @@ -148,7 +148,7 @@ "metadata": {}, "source": [ "#### 1. Zaloguj się\n", - " - zaloguj się na http://tzietkiewicz.vm.wmi.amu.edu.pl:8080 za pomocą konta wydziałowego (jak w laboratoriach WMI)" + " - zaloguj się na https://tzietkiewicz.vm.wmi.amu.edu.pl:8080 za pomocą konta wydziałowego (jak w laboratoriach WMI)" ] }, { @@ -177,7 +177,7 @@ "\n", " - Pierwszy z nich daje większe możliwości, drugi jest łatwiejszy, lepiej udokumentowany, ale ma mniejszą siłę ekpresji.\n", "\n", - " - Fragmenty kodu można również generować przy pomocy kreatora, dostępnego pod linkiem [Pipeline syntax](http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/) na stronie każdego projektu. Jest to bardzo przydatna funkcjonalność, nie tylko dla początkujących użytkowników\n", + " - Fragmenty kodu można również generować przy pomocy kreatora, dostępnego pod linkiem [Pipeline syntax](https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/pipeline-syntax/) na stronie każdego projektu. Jest to bardzo przydatna funkcjonalność, nie tylko dla początkujących użytkowników\n", "\n", " - Jenkinsfile może być wprowadzony bezpośrednio z poziomu przeglądarki, albo pobrany z repozytorium.\n", "\n", @@ -191,7 +191,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Przykładowy declarative Pipeline (http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/):\n", + "Przykładowy declarative Pipeline (https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world/):\n", "\n", "```groovy\n", "pipeline {\n", @@ -230,7 +230,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Przykładowy scripted Pipeline (http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/):\n", + "Przykładowy scripted Pipeline (https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/):\n", "\n", "```groovy\n", "node {\n", @@ -313,12 +313,12 @@ "export KAGGLE_USERNAME=datadinosaur\n", "export KAGGLE_KEY=xxxxxxxxxxxxxx\n", " ```\n", - " - Jenkins natomiast umożliwia utworzenie parametru typu password, którego wartość nie jest nigdzie zapisywana (wartości pozostałych parametrów są zapisywane w zakładce \"Parameters\" każdego build-a, np. [tutaj](http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/1/parameters/)\n", + " - Jenkins natomiast umożliwia utworzenie parametru typu password, którego wartość nie jest nigdzie zapisywana (wartości pozostałych parametrów są zapisywane w zakładce \"Parameters\" każdego build-a, np. [tutaj](https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/hello-world-scripted/1/parameters/)\n", " - konstukcja `withEnv` w Jenkinsfile, pozwala wywołać wszystkie otoczone nią polecenia z wyeksportowanymi wartościami zmiennych systemowych. Pozwala to np. przekazać wartości parametrów zadania Jenkinsowego do shella (poleceń wywoływanych z `sh`). \n", " - ten sam rezultat co przy wykorzystaniu `withEnv` można by osiągnąć wywołując: `sh \"KAGGLE_USERNAME=${params.KAGGLE_USERNAME} KAGGLE_KEY=${params.KAGGLE_KEY} kaggle datasets list`, ale ten pierwszy wydahe się bardziej elegancki\n", " - Poniżej przykładowy projekt, który pokazuje jak wywołać Kaggle CLI używając hasła podanego w parametrach zadania:\n", " \n", - "http://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/kaggle-CLI-example/\n", + "https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/kaggle-CLI-example/\n", "```groovy\n", "node {\n", " stage('Preparation') { \n",