{"id":194,"date":"2024-02-25T09:16:29","date_gmt":"2024-02-25T09:16:29","guid":{"rendered":"https:\/\/blog.fubuha.com\/?p=194"},"modified":"2024-06-27T09:37:25","modified_gmt":"2024-06-27T09:37:25","slug":"boost-your-ci-cd-mastering-azure-devops-variables-for-great-pipelines","status":"publish","type":"post","link":"https:\/\/blog.fubuha.com\/index.php\/2024\/02\/25\/boost-your-ci-cd-mastering-azure-devops-variables-for-great-pipelines\/","title":{"rendered":"Boost Your CI\/CD Mastering Azure DevOps Variables for great pipelines"},"content":{"rendered":"\r\n<p>W dzisiejszym \u015bwiecie CI\/CD praktycznie w ka\u017cdym przypadku potrzebujemy mo\u017cliwo\u015bci podmiany lub przypisania zmiennych i sekret\u00f3w. Zar\u00f3wno na etapie budowania projektu, ale tak\u017ce na etapie &#8220;Release&#8217;a&#8221;. Jednym z kluczowych element\u00f3w umo\u017cliwiaj\u0105cych elastyczno\u015b\u0107 i dostosowanie proces\u00f3w CI\/CD s\u0105 zmienne. W tym wpisie przyjrzymy si\u0119, jak zmienne w Azure DevOps mog\u0105 pom\u00f3c w efektywnym zarz\u0105dzaniu projektem i jego wdra\u017caniem.<\/p>\r\n\r\n\r\n\r\n<p><strong>Czym s\u0105 zmienne w Azure DevOps?<\/strong><\/p>\r\n\r\n\r\n\r\n<p>Zmienne w Azure DevOps to spos\u00f3b na przechowywanie danych, kt\u00f3re mog\u0105 by\u0107 u\u017cywane i ponownie u\u017cywane w r\u00f3\u017cnych etapach procesu CI\/CD. Mog\u0105 to by\u0107 \u015bcie\u017cki do katalog\u00f3w, has\u0142a, tokeny dost\u0119pu, nazwy \u015brodowisk i wiele innych. Zmienne mog\u0105 by\u0107 ustawiane na poziomie pipeline&#8217;\u00f3w, etap\u00f3w, zada\u0144, a nawet agent\u00f3w. W tym wpisie skupimy si\u0119 na utworzeniu zmiennych zar\u00f3wno dla etapu Release jak i Pipeline&#8217;u.<\/p>\r\n\r\n\r\n\r\n<p><strong>Jak zacz\u0105\u0107?<\/strong><\/p>\r\n\r\n\r\n\r\n<p>Za\u0142o\u017cenie wst\u0119pne jakie musimy poczyni\u0107 to za\u0142o\u017cony wcze\u015bniej projekt na platformie Azure DevOps. Repozytorium nie b\u0119dzie konieczne. Najpierw zaczynamy od utworzenia grupy zmiennych, kt\u00f3re mo\u017cna b\u0119dzie wykorzysta\u0107 w Build Pipeline. Wchodzimy do zak\u0142adki <strong>Library<\/strong> i dodajemy <strong>Variable group<\/strong>.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-195\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/1_EmptyLibrary.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Teraz mo\u017cemy zmieni\u0107 nazw\u0119 grupy a tak\u017ce doda\u0107 zmienne \/ sekrety b\u0119d\u0105ce jej cz\u0119\u015bci\u0105. Poprzez zak\u0142adk\u0119 Security mo\u017cemy ograniczy\u0107 dost\u0119p do tej grupy zmiennych.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-196\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/2_AddVariableGroup.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>W tym momencie mamy ju\u017c dost\u0119pn\u0105 grup\u0119 zmiennych do kt\u00f3rej mamy dost\u0119p w plikach YAML.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-197\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/4_LibraryList.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Oto sk\u0142adnia dzi\u0119ki kt\u00f3rej si\u0119gamy do tych zmiennych.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"855\" height=\"247\" class=\"wp-image-198\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/image-5.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/image-5.png 855w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/image-5-300x87.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/image-5-768x222.png 768w\" sizes=\"(max-width: 855px) 100vw, 855px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Drugim etapem jest dodanie zmiennych na poziomie Release. Co wa\u017cne mo\u017cemy tam te\u017c skorzysta\u0107 ze zmiennych zdefiniowanych w &#8220;Variable Group&#8221; poprzez ich linkowanie. Wchodzimy do zak\u0142adki <strong>Variables <\/strong>w <strong>Releases<\/strong>. Tutaj dodajemy sekrety widoczne tylko w przypadku Release&#8217;a.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-199\" style=\"width: 840px; height: auto;\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/5_ReleasePipelineVariables.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>W zak\u0142adce Variable Groups mo\u017cemy doda\u0107 referencj\u0119 do grupy dodanej wcze\u015bniej.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-200\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/6_LinkVariableGroup.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-201\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/7_LinkVariableGroup2.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" class=\"wp-image-202\" src=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup-1024x491.png\" alt=\"\" srcset=\"https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup-1024x491.png 1024w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup-300x144.png 300w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup-768x368.png 768w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup-1536x736.png 1536w, https:\/\/blog.fubuha.com\/wp-content\/uploads\/2024\/02\/8_LinkedGroup.png 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>W kolejnej cz\u0119\u015bci dowiemy si\u0119 jak wykorzysta\u0107 te zmienne w budowaniu i wdra\u017caniu projekt\u00f3w.<\/p>\r\n\r\n\r\n\r\n<p>Linki do rozszerzenia wiedzy:<\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/process\/variables?view=azure-devops&amp;tabs=yaml%2Cbatch\">https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/process\/variables?view=azure-devops&amp;tabs=yaml%2Cbatch<\/a><\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/medium.com\/@sobisw\/demystifying-variable-groups-in-azure-devops-2d0c2bf64373\">https:\/\/medium.com\/@sobisw\/demystifying-variable-groups-in-azure-devops-2d0c2bf64373<\/a><\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/damienaicheh.github.io\/azure\/devops\/2021\/02\/10\/variable-templates-azure-devops-en.html\">https:\/\/damienaicheh.github.io\/azure\/devops\/2021\/02\/10\/variable-templates-azure-devops-en.html<\/a><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>W dzisiejszym \u015bwiecie CI\/CD praktycznie w ka\u017cdym przypadku potrzebujemy mo\u017cliwo\u015bci podmiany lub przypisania zmiennych i sekret\u00f3w. Zar\u00f3wno na etapie budowania projektu, ale tak\u017ce na etapie &#8220;Release&#8217;a&#8221;. Jednym z kluczowych element\u00f3w umo\u017cliwiaj\u0105cych elastyczno\u015b\u0107 i dostosowanie proces\u00f3w CI\/CD s\u0105 zmienne. W tym wpisie przyjrzymy si\u0119, jak zmienne w Azure DevOps mog\u0105 pom\u00f3c w efektywnym zarz\u0105dzaniu projektem i&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[2,3,1],"tags":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/posts\/194"}],"collection":[{"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":3,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/posts\/194\/revisions\/569"}],"wp:attachment":[{"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fubuha.com\/index.php\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}