{"id":88,"date":"2020-10-12T14:18:40","date_gmt":"2020-10-12T14:18:40","guid":{"rendered":"https:\/\/www.theazurecloud.ninja\/?p=88"},"modified":"2020-10-12T14:18:40","modified_gmt":"2020-10-12T14:18:40","slug":"prepping-the-build-pipeline","status":"publish","type":"post","link":"https:\/\/www.azuregovernanceguard.com\/?p=88","title":{"rendered":"Prepping the Build Pipeline"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Azure\u00a0Pipelines\u00a0is\u00a0a\u00a0cloud\u00a0service\u00a0that\u00a0you\u00a0can\u00a0use\u00a0to\u00a0automatically\u00a0build\u00a0and\u00a0test\u00a0your\u00a0code\u00a0project\u00a0and\u00a0make\u00a0it\u00a0available\u00a0to\u00a0other\u00a0users.\u00a0It\u00a0works\u00a0with\u00a0about any\u00a0language\u00a0or\u00a0project\u00a0type.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This blog is part of a series of blog about &#8220;<a href=\"https:\/\/labornet.nl\/?page_id=41\">Creating PowerShell modules with Azure Devops.<\/a>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Azure\u00a0Pipelines\u00a0combines\u00a0continuous\u00a0integration\u00a0(CI)\u00a0and\u00a0continuous\u00a0delivery\u00a0(CD)\u00a0to\u00a0test and build your code and ship it to any target constantly and consistently<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before\u00a0you\u00a0can\u00a0start\u00a0using\u00a0the\u00a0Build\u00a0pipelines,\u00a0we\u00a0need\u00a0to\u00a0prep\u00a0the\u00a0environment.\u00a0These\u00a0preparations\u00a0are\u00a0necessary\u00a0for\u00a0the\u00a0build\u00a0process\u00a0to\u00a0work\u00a0correct.\u00a0During\u00a0the\u00a0build\u00a0process\u00a0the\u00a0build\u00a0pipeline looks\u00a0for\u00a0a\u00a0<strong>Variable\u00a0group<\/strong>\u00a0and\u00a0in\u00a0the\u00a0<strong>Variable\u00a0group<\/strong>\u00a0the\u00a0location\u00a0of\u00a0the\u00a0feeds\u00a0are\u00a0describe.\u00a0This feed\u00a0is\u00a0used\u00a0for\u00a0all\u00a0modules\u00a0that\u00a0are\u00a0created\u00a0within\u00a0the\u00a0project.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[!TIP]<br>If you want to use specific feeds for specific modulus you can change the location of the variable to the build pipeline. The pipeline variables overrule the general variables.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">We&nbsp;need&nbsp;to&nbsp;do&nbsp;the&nbsp;following&nbsp;steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Create\u00a0an\u00a0<strong>Artifacts\u00a0Feed<\/strong><\/li><li>Create\u00a0a\u00a0<strong>Library<\/strong>\u00a0item<\/li><li>Variables<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Create&nbsp;a<strong> Artifacts&nbsp;Feed<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.azuregovernanceguard.com\/wp-content\/uploads\/2020\/10\/CreateFeed.gif\" alt=\"\" class=\"wp-image-110\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For\u00a0more\u00a0information:\u00a0 <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/artifacts\/concepts\/feeds?view=azure-devops\" target=\"_blank\">Creating\u00a0a\u00a0feed<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Create&nbsp;a&nbsp;Library item<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Log in the Azure DevOps environment. (https:\/\/dev.azure.com\/)<\/li><li>Select the project you are working on.<\/li><li>Select &#8220;<strong>Pipelines<\/strong>&#8220;<\/li><li>Select &#8220;<strong>Library<\/strong>&#8220;<\/li><li>Select &#8220;<strong>+ Variable group<\/strong>&#8220;<\/li><li>Change the <strong>Variable group<\/strong> name to <strong>General-build-variable<\/strong><\/li><li>Select <strong>+ Add<\/strong><\/li><li>Add the required Variables<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Variables<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following variable need to be used with the <strong>General-build-variable<\/strong> build pipeline.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Name<\/th><th>Value<\/th><\/tr><\/thead><tbody><tr><td>module.acceptableCodeCoveragePercent<\/td><td>75<\/td><\/tr><tr><td>FailTaskIfNoControlsScanned<\/td><td>True\/False<\/td><\/tr><tr><td>module.FeedName<\/td><td>\u2026<\/td><\/tr><tr><td>module.SourceLocation<\/td><td>\u2026<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">module.<strong>acceptableCodeCoveragePercent<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">During the test phase within the build process the code coverage is tested. This test tested the lines that are being tested and generate a percentage from it. When the score is below this value the release will be canceled and you need to increase the number of lines that are being tested.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>FailTaskIfNoControlsScanned<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This variable is to control the behavior of the SVT extension in case of no controls scanned. For e.g., using this, one may choose to pass the task if it is configured to scan only &#8216;High&#8217; severity control but there are no resources for which &#8216;High&#8217; severity controls are applicable. <a href=\"https:\/\/github.com\/azsk\/DevOpsKit-docs\">Secure DevOps Kit for Azure (AzSK)<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Retrieving Feedname and Source Location<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following two variable you need to construct yourself. The easiest way to do this is:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Select &#8220;<strong>Artifacts<\/strong>&#8220;<\/li><li>Select &#8220;<strong>Connect to feed<\/strong>&#8220;<\/li><li>Select &#8220;<strong>NuGet.exe<\/strong>&#8220;<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.azuregovernanceguard.com\/wp-content\/uploads\/2020\/10\/Feedname.jpg\" alt=\"\" class=\"wp-image-115\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[!WARNING]<br>Because we are using the command &#8220;Register-PackageSource&#8221; only V2 source locations are allowed.<\/p><p>So we need to recreate the source location from:<br>https:\/\/pkgs.dev.azure.com\/TheAzCloudNinja\/_packaging\/Test\/nuget<strong>\/v3\/index.json<\/strong><br>to:<br>https:\/\/pkgs.dev.azure.com\/TheAzCloudNinja\/_packaging\/Test\/nuget<strong>\/v2\/<\/strong><\/p><\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>module.FeedName<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Because the build pipeline will publish it content into an <strong>Artifact<\/strong> it needs to have the name of this feed. The process of creating a feed is documented here: <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/artifacts\/concepts\/feeds?view=azure-devops\">Creating a feed<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>module.SourceLocation<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>module.SourceLocation<\/strong> is the location of where the packages need to be published to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The feed as a PSRepository you will need a name, source location, and publish location. The name is what you will call the PSRepository and can be anything you chose in this example we call it \u201cmyAzArtifactsRepo\u201d. Your source location and publish location will be the same uri and will be the format: \u201chttps:\/\/pkgs.dev.azure.com\/\u2019yourorganizationname\u2019\/_packaging\/\u2019yourfeedname\u2019\/nuget\/v2\/\u201c.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[!WARNING]<br>Because we are using the command &#8220;Register-PackageSource&#8221; only V2 source locations are allowed.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Azure\u00a0Pipelines\u00a0is\u00a0a\u00a0cloud\u00a0service\u00a0that\u00a0you\u00a0can\u00a0use\u00a0to\u00a0automatically\u00a0build\u00a0and\u00a0test\u00a0your\u00a0code\u00a0project\u00a0and\u00a0make\u00a0it\u00a0available\u00a0to\u00a0other\u00a0users.\u00a0It\u00a0works\u00a0with\u00a0about any\u00a0language\u00a0or\u00a0project\u00a0type. This blog is part of a series of blog about &#8220;Creating PowerShell modules with Azure Devops.&#8220; Azure\u00a0Pipelines\u00a0combines\u00a0continuous\u00a0integration\u00a0(CI)\u00a0and\u00a0continuous\u00a0delivery\u00a0(CD)\u00a0to\u00a0test and<\/p>\n<p><a href=\"https:\/\/www.azuregovernanceguard.com\/?p=88\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\">Prepping the Build Pipeline<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[120],"tags":[124],"class_list":["post-88","post","type-post","status-publish","format-standard","hentry","category-powershell","tag-creating-powershell-modules-with-azure-devops"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about &quot;Creating PowerShell modules with Azure Devops.&quot; Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Eelco Labordus\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.azuregovernanceguard.com\/?p=88\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Azure Governance Guard -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Prepping the Build Pipeline - Azure Governance Guard\" \/>\n\t\t<meta property=\"og:description\" content=\"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about &quot;Creating PowerShell modules with Azure Devops.&quot; Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.azuregovernanceguard.com\/?p=88\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-12T14:18:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-12T14:18:40+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@EelcoLabordus\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Prepping the Build Pipeline - Azure Governance Guard\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about &quot;Creating PowerShell modules with Azure Devops.&quot; Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@EelcoLabordus\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&amp;ssl=1\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#blogposting\",\"name\":\"Prepping the Build Pipeline - Azure Governance Guard\",\"headline\":\"Prepping the Build Pipeline\",\"author\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/CreateFeed.gif\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88\\\/#articleImage\",\"width\":1245,\"height\":657},\"datePublished\":\"2020-10-12T14:18:40+00:00\",\"dateModified\":\"2020-10-12T14:18:40+00:00\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#webpage\"},\"articleSection\":\"PowerShell, Creating PowerShell modules with Azure Devops.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.azuregovernanceguard.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=120#listItem\",\"name\":\"PowerShell\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=120#listItem\",\"position\":2,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=120\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#listItem\",\"name\":\"Prepping the Build Pipeline\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#listItem\",\"position\":3,\"name\":\"Prepping the Build Pipeline\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=120#listItem\",\"name\":\"PowerShell\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\",\"name\":\"Eelco Labordus\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Eelco Labordus\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1\",\"name\":\"Eelco Labordus\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Eelco Labordus\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#webpage\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88\",\"name\":\"Prepping the Build Pipeline - Azure Governance Guard\",\"description\":\"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about \\\"Creating PowerShell modules with Azure Devops.\\\" Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the\",\"inLanguage\":\"en\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=88#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"datePublished\":\"2020-10-12T14:18:40+00:00\",\"dateModified\":\"2020-10-12T14:18:40+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#website\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/\",\"name\":\"Azure Governance Guard\",\"inLanguage\":\"en\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Prepping the Build Pipeline - Azure Governance Guard","description":"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about \"Creating PowerShell modules with Azure Devops.\" Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the","canonical_url":"https:\/\/www.azuregovernanceguard.com\/?p=88","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#blogposting","name":"Prepping the Build Pipeline - Azure Governance Guard","headline":"Prepping the Build Pipeline","author":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"publisher":{"@id":"https:\/\/www.azuregovernanceguard.com\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/www.azuregovernanceguard.com\/wp-content\/uploads\/2020\/10\/CreateFeed.gif","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88\/#articleImage","width":1245,"height":657},"datePublished":"2020-10-12T14:18:40+00:00","dateModified":"2020-10-12T14:18:40+00:00","inLanguage":"en","mainEntityOfPage":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#webpage"},"isPartOf":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#webpage"},"articleSection":"PowerShell, Creating PowerShell modules with Azure Devops."},{"@type":"BreadcrumbList","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com#listItem","position":1,"name":"Home","item":"https:\/\/www.azuregovernanceguard.com","nextItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=120#listItem","name":"PowerShell"}},{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=120#listItem","position":2,"name":"PowerShell","item":"https:\/\/www.azuregovernanceguard.com\/?cat=120","nextItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#listItem","name":"Prepping the Build Pipeline"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#listItem","position":3,"name":"Prepping the Build Pipeline","previousItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=120#listItem","name":"PowerShell"}}]},{"@type":"Person","@id":"https:\/\/www.azuregovernanceguard.com\/#person","name":"Eelco Labordus","image":{"@type":"ImageObject","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g","width":96,"height":96,"caption":"Eelco Labordus"}},{"@type":"Person","@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author","url":"https:\/\/www.azuregovernanceguard.com\/?author=1","name":"Eelco Labordus","image":{"@type":"ImageObject","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g","width":96,"height":96,"caption":"Eelco Labordus"}},{"@type":"WebPage","@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#webpage","url":"https:\/\/www.azuregovernanceguard.com\/?p=88","name":"Prepping the Build Pipeline - Azure Governance Guard","description":"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about \"Creating PowerShell modules with Azure Devops.\" Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the","inLanguage":"en","isPartOf":{"@id":"https:\/\/www.azuregovernanceguard.com\/#website"},"breadcrumb":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=88#breadcrumblist"},"author":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"creator":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"datePublished":"2020-10-12T14:18:40+00:00","dateModified":"2020-10-12T14:18:40+00:00"},{"@type":"WebSite","@id":"https:\/\/www.azuregovernanceguard.com\/#website","url":"https:\/\/www.azuregovernanceguard.com\/","name":"Azure Governance Guard","inLanguage":"en","publisher":{"@id":"https:\/\/www.azuregovernanceguard.com\/#person"}}]},"og:locale":"en_US","og:site_name":"Azure Governance Guard -","og:type":"article","og:title":"Prepping the Build Pipeline - Azure Governance Guard","og:description":"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about &quot;Creating PowerShell modules with Azure Devops.&quot; Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the","og:url":"https:\/\/www.azuregovernanceguard.com\/?p=88","og:image":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1","og:image:secure_url":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1","article:published_time":"2020-10-12T14:18:40+00:00","article:modified_time":"2020-10-12T14:18:40+00:00","twitter:card":"summary_large_image","twitter:site":"@EelcoLabordus","twitter:title":"Prepping the Build Pipeline - Azure Governance Guard","twitter:description":"Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with about any language or project type. This blog is part of a series of blog about &quot;Creating PowerShell modules with Azure Devops.&quot; Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to test and build your code and ship it to any target constantly and consistently Before you can start using the Build pipelines, we need to prep the environment. These preparations are necessary for the build process to work correct. During the build process the build pipeline looks for a Variable group and in the Variable group the location of the feeds are describe. This feed is used for all modules that are created within the project. [!TIP]If you want to use specific feeds for specific modulus you can change the location of the variable to the","twitter:creator":"@EelcoLabordus","twitter:image":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&ssl=1"},"aioseo_meta_data":{"post_id":"88","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-09-15 13:27:19","updated":"2025-09-15 13:27:19","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.azuregovernanceguard.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.azuregovernanceguard.com\/?cat=120\" title=\"PowerShell\">PowerShell<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPrepping the Build Pipeline\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.azuregovernanceguard.com"},{"label":"PowerShell","link":"https:\/\/www.azuregovernanceguard.com\/?cat=120"},{"label":"Prepping the Build Pipeline","link":"https:\/\/www.azuregovernanceguard.com\/?p=88"}],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":362,"url":"https:\/\/www.azuregovernanceguard.com\/?p=362","url_meta":{"origin":88,"position":0},"title":"The journey that is called Microsoft Azure Stack","author":"Eelco Labordus","date":"January 4, 2021","format":false,"excerpt":"A couple of years ago, I was present at TechEd Europe 2014 for the launch of Windows Azure Pack. This version was built to give the same experience as the first version of Azure (now known as the classic portal). A big challenge was getting started with the Windows Azure\u2026","rel":"","context":"In &quot;Microsoft Azure Stack Hub&quot;","block_context":{"text":"Microsoft Azure Stack Hub","link":"https:\/\/www.azuregovernanceguard.com\/?cat=118"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":780,"url":"https:\/\/www.azuregovernanceguard.com\/?p=780","url_meta":{"origin":88,"position":1},"title":"Microsoft Azure Stack Hub","author":"Eelco Labordus","date":"January 4, 2021","format":false,"excerpt":"Azure Stack is a hybrid cloud computing software solution developed by Microsoft based on the company\u2019s Azure cloud platform. Azure Stack is designed to help organizations deliver Azure services from their own data center. Azure Stack combines infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) services in a software stack that spans on-premises\u2026","rel":"","context":"In &quot;Microsoft Azure Stack Hub&quot;","block_context":{"text":"Microsoft Azure Stack Hub","link":"https:\/\/www.azuregovernanceguard.com\/?cat=118"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":363,"url":"https:\/\/www.azuregovernanceguard.com\/?p=363","url_meta":{"origin":88,"position":2},"title":"Microsoft\u2019s Framework Trio: Cloud Adoption Framework (CAF), Azure Well-Architected Framework (WAF) and Security Adoption Framework (SAF)","author":"Eelco Labordus","date":"December 17, 2023","format":false,"excerpt":"Intro\u00a0 I will be taking a closer look at Microsoft's Cloud Adoption Framework for Azure (CAF), the Azure Well-Architected Framework (WAF), and the Security Adoption Framework (SAF). These frameworks are like a trusty roadmap for a smooth, secure, and optimized cloud journey.\u00a0 Microsoft Cloud Adoption Framework for Azure (CAF)\u00a0 Imagine\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":193,"url":"https:\/\/www.azuregovernanceguard.com\/?p=193","url_meta":{"origin":88,"position":3},"title":"Safeguarding Cloud Resources with Azure Policy&#8217;s DenyAction Effect","author":"Eelco Labordus","date":"July 25, 2023","format":false,"excerpt":"In this blog article, we explore the significance of safeguarding cloud resources from accidental or malicious deletion in Azure environments. To ensure the integrity and security of your cloud infrastructure, Azure Policy's DenyAction Effect provides a powerful feature. We discuss the importance of protecting resources due to accidental deletions, which\u2026","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":112,"url":"https:\/\/www.azuregovernanceguard.com\/?p=112","url_meta":{"origin":88,"position":4},"title":"Maximizing Azure Policy: Leveraging Audit and Deny Modes for Development and Production Environments","author":"Eelco Labordus","date":"June 11, 2023","format":false,"excerpt":"Azure Policy is a powerful governance service offered by Microsoft Azure that helps organizations enforce compliance, security, and best practices across their cloud infrastructure. It provides a range of policy definitions that can be used to monitor and control resources, ensuring they adhere to specific rules and guidelines. In this\u2026","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":412,"url":"https:\/\/www.azuregovernanceguard.com\/?p=412","url_meta":{"origin":88,"position":5},"title":"How do I govern my Governance (policies)","author":"Eelco Labordus","date":"March 5, 2024","format":false,"excerpt":"In the dynamic tech landscape, Azure policies are critical for system security and operation, requiring regular updates and monitoring for changes using alerts.","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2024\/02\/image-9.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2024\/02\/image-9.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2024\/02\/image-9.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2024\/02\/image-9.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts\/88","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=88"}],"version-history":[{"count":0,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts\/88\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=88"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=88"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}