{"id":12272,"date":"2022-02-11T16:07:08","date_gmt":"2022-02-11T16:07:08","guid":{"rendered":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/"},"modified":"2022-02-11T16:07:08","modified_gmt":"2022-02-11T16:07:08","slug":"how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/","title":{"rendered":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT"},"content":{"rendered":"<p> <a href=\"https:\/\/go.fiverr.com\/visit\/?bta=1052423&nci=17043\" Target=\"_Top\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"https:\/\/fiverr.ck-cdn.com\/tn\/serve\/?cid=40081059\"  width=\"601\" height=\"201\"><\/a>\n<\/p>\n<div id=\"article-content-area\">\n<p><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage aligncenter size-full wp-image-9546\" data-pagespeed-lazy-data-srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/02\/266bb4cf.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/02\/266bb4cf.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" data-sizes=\"auto, 400w, 1200w\" data-pagespeed-lazy-src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/02\/266bb4cf.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Graphic showing the GitLab logo, a stylised fox head\" width=\"1602\" height=\"902\" src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>GitLab CI\u2019s Variables system lets you inject data into your CI job environments. You can use variables to supply config values, create reusable pipelines, and avoid hardcoding sensitive information into your <code>.gitlab-ci.yml<\/code> files.<\/p>\n<p>In this guide we\u2019ll look at how you can set and use variables within your own CI system. There are several options available depending on where you want values to be surfaced and how regularly you\u2019ll want to change them.<\/p>\n<h2 id=\"the-basics\">The Basics<\/h2>\n<p>At their simplest variables are key-value pairs which are injected as environment variables into your pipeline\u2019s execution context. You can reference them within your <code>.gitlab-ci.yml<\/code> file as standard environment variables:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">test<\/span>:<span class=\"co4\">\n  script<\/span><span class=\"sy2\">:\n<\/span>    - echo <span class=\"st0\">\"$EXAMPLE_VARIABLE\"<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>You can escape the <code>$<\/code> character using the <code>$$VARIABLE<\/code> syntax:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">test<\/span>:<span class=\"co4\">\n  script<\/span><span class=\"sy2\">:\n<\/span>    - echo <span class=\"st0\">\"$$EXAMPLE_VARIABLE\"<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This example would cause <code>$EXAMPLE_VARIABLE<\/code> to be logged, instead of the <em>value<\/em> of the <code>EXAMPLE_VARIABLE<\/code> variable as shown above.<\/p>\n<p>Variables are available within the job\u2019s environment. They can also be interpolated into the values of other fields in your <code>.gitlab-ci.yml<\/code> file, enabling dynamic pipeline configuration:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">build<\/span>:<span class=\"co3\">\n  image<\/span><span class=\"sy2\">: <\/span>$CI_REGISTRY_IMAGE\/build-utils:latest<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>GitLab CI defines <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/predefined_variables.html\">several built-in variables<\/a> that are always available. These include details of the commit, branch, and merge request that the pipeline\u2019s running against. The predefined variables also provide access to per-job credentials for accessing other GitLab features such as the <a href=\"https:\/\/www.cloudsavvyit.com\/15115\/how-to-build-docker-images-in-a-gitlab-ci-pipeline\">Container Registry<\/a> and <a href=\"https:\/\/www.cloudsavvyit.com\/10394\/how-to-enable-gitlabs-dependency-proxy-for-docker-images\">Dependency Proxy<\/a>.<\/p>\n<p>Beyond these built-in variables, you can set your own values in multiple places. Variables are supported at the instance, group, project, and pipeline level, giving you flexibility when setting fallback values, defaults, and overrides. You can set variables using the GitLab UI or <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/project_level_variables.html\">the API<\/a>; we\u2019re concentrating on the UI in this guide.<\/p>\n<h2 id=\"defining-a-variable\">Defining a Variable<\/h2>\n<p>Variables are created on the Settings &gt; CI\/CD &gt; Variables screen of the scope you want them to be available in. For a project-level variable, that means going to Settings &gt; CI\/CD from GitLab\u2019s left sidebar while viewing a page within the project. Similarly, for group-level variables, navigate to the group and use the sidebar to reach its CI settings. Instance-level variables are located via the same route in the GitLab Admin Area.<\/p>\n<p>Expand the \u201cVariables\u201d section to view any variables that have already been defined. Click the blue \u201cAdd variable\u201d button to begin adding a new item to the list.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15484\" data-pagespeed-lazy-src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/0fe99800.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"648\" src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Each variable needs a unique Key; this is how you\u2019ll reference the variable within your pipeline and its scripts. The name you choose must be compatible with the shell that\u2019ll run your job \u2013 if you pick a reserved keyword, your job could fail. All variables should be a valid string containing only alphanumeric characters and underscores.<\/p>\n<p>Next set the value of your variable. When the \u201cType\u201d dropdown is left at \u201cVariable,\u201d this value will be injected as-is each time you reference the variable in your pipeline. Changing the type to \u201cFile\u201d will inject the value as a temporary file in your build environment; the value of the environment variable will be the path to that temporary file. This can be a safer way to inject sensitive data if your application is prepared to read the final value from the specified file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15485\" data-pagespeed-lazy-src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/5bb0b0ea.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"648\" src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Once you\u2019re done, click the green \u201cAdd variable\u201d button to complete the process. You can now reference your variable in pipelines that execute within the scope you defined it in. For a project variable, it\u2019ll be defined for pipelines inside that project, whereas instance-level variables will be available to every pipeline on your GitLab server.<\/p>\n<p>Variables can be managed at any time by returning to the settings screen of the scope they\u2019re set in. Click the Edit button (pencil icon) next to any variable to display the editing dialog and change the variable\u2019s properties. This dialog also provides a way to delete redundant variables.<\/p>\n<h3 id=\"protected-variables\">Protected Variables<\/h3>\n<p>Variables can be marked as \u201cprotected\u201d by selecting the checkbox in the \u201cadd variable\u201d dialog. This option means the variable will only be defined in pipelines running against protected branches or tags.<\/p>\n<p>Protected variables are ideal in circumstances where you\u2019re exposing a sensitive value such as a deployment key that won\u2019t be used in every pipeline. Limiting that value to only the pipelines that actually need it (like deployment jobs running against your protected <code>release<\/code> branch) lowers the risk of accidental leakage.<\/p>\n<h3 id=\"masked-variables\">Masked Variables<\/h3>\n<p>The \u201cMask variable\u201d option is another way to enhance the safety of your variables. When this checkbox is enabled, GitLab will automatically filter the variable\u2019s value out of collected job logs. Any unintentional <code>echo $SECRET_VALUE<\/code> will be cleaned up, reducing the risk of a user seeing a sensitive token value as they inspect the job logs using the GitLab web UI.<\/p>\n<p>Successful masking requires variable values to be reliably detectable within the logs. Consequently it only works for values that meet specific <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/#mask-a-cicd-variable\">formatting requirements<\/a>. Most common authentication token formats, as well as all Base64-encoded data, will be compatible. Masking only works for values up to 4 KiB in size.<\/p>\n<h3 id=\"environment-level-variables\">Environment-Level Variables<\/h3>\n<p>Variables can be assigned to specific <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/environments\">environments<\/a>. This feature lets your pipelines operate with different configuration depending on the environment they\u2019re deploying to.<\/p>\n<p>Use the \u201cEnvironment scope\u201d dropdown in the \u201cAdd variable\u201d dialog to select an environment for your variable. The variable will only be defined in pipelines which reference the selected environment via the <code>environment<\/code> field in the <code>.gitlab-ci.yml<\/code> file.<\/p>\n<h2 id=\"setting-variables-in-.gitlab-ci.yml\">Setting Variables In <code>.gitlab-ci.yml<\/code><\/h2>\n<p>Variables can be defined within your <code>.gitlab-ci.yml<\/code> file using <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#variables\">a <code>variables<\/code> block<\/a>. Variables listed here will be created for the job if they don\u2019t already exist; otherwise, they\u2019ll override the value set at the project-level or higher.<\/p>\n<p>Variables can be set at the pipeline level with a global <code>variables<\/code> section. Individual jobs can have their own variables too. Both approaches are shown below where the staging job overrides the value of a pipeline-level variable and sets a unique job-specific variable in addition.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">variables<\/span>:<span class=\"co3\">\n  DEPLOY_URL<\/span><span class=\"sy2\">: <\/span>example.com\n<span class=\"co4\">\ndeploy_staging<\/span>:<span class=\"co4\">\n  variables<\/span>:<span class=\"co3\">\n    DEPLOY_URL<\/span><span class=\"sy2\">: <\/span>staging.example.com<span class=\"co3\">\n    DEPLOY_IS_STAGING_ENV<\/span><span class=\"sy2\">: <\/span>true<span class=\"co4\">\n  script<\/span><span class=\"sy2\">:\n<\/span>    - .\/deploy.sh\n<span class=\"co4\">\ndeploy_production<\/span>:<span class=\"co4\">\n  script<\/span><span class=\"sy2\">:\n<\/span>    - .\/deploy.sh<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Variables defined in <code>.gitlab-ci.yml<\/code> files can sometimes be used in different ways to those set within the GitLab UI or API. You might use a variable to avoid repeating sections of the file, even if those values aren\u2019t likely to change or be overridden in the future. Hence <code>variables<\/code> sections can feel closer to the variables of programming languages than the config-like keys commonly found at the project level and higher.<\/p>\n<h2 id=\"overriding-variables\">Overriding Variables<\/h2>\n<p>GitLab\u2019s variable system gives you multiple points at which you can override a variable\u2019s value before it\u2019s fixed for a pipeline or job. The <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/#cicd-variable-precedence\">precedence order<\/a> is relatively complex but can be summarized as the following:<\/p>\n<ul>\n<li>GitLab\u2019s predefined variables are always set first.<\/li>\n<li>Variables defined within <code>.gitlab-ci.yml<\/code> are set next (job variables are more specific than pipeline variables).<\/li>\n<li>The variables set at the instance, group, and project level are layered in.<\/li>\n<li>Variables from the specific pipeline trigger override everything that comes before.<\/li>\n<\/ul>\n<p>You can always run a pipeline with a specific variable value by using manual execution. Head to your project\u2019s CI\/CD &gt; Pipelines page and click the blue \u201cRun pipeline\u201d button in the top-right.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15486\" data-pagespeed-lazy-src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/50a2e996.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"648\" src=\"https:\/\/mailinvest.blog\/wp-content\/themes\/breek\/assets\/images\/transparent.gif\" data-lazy=\"true\" data-src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Use the dropdown menu to select the branch or tag to run the pipeline against. Next use the \u201cVariables\u201d table to define variables to add to this pipeline run. These will become the most specific values, applied as the final stage in the variable precedence order. Variables set here won\u2019t be saved or reused with any future pipeline.<\/p>\n<h2 id=\"summary\">Summary<\/h2>\n<p>GitLab\u2019s CI variables implementation is a powerful and flexible mechanism for configuring your pipelines. There are so many places that variables can be defined that it can be tricky to work out where a value should be located.<\/p>\n<p>In general, it\u2019s usually most effective to place as many values as you can at the group-level so you don\u2019t have to repeat yourself within your projects. You can always override a variable later in specific projects that need a different value. Self-hosted GitLab administrators can use instance variables to expose common shared values, although this could cause unintentional information exposure if not carefully managed.<\/p>\n<\/div>\n<iframe data-lazy=\"true\" data-src=\"https:\/\/www.fiverr.com\/gig_widgets?id=U2FsdGVkX18x7XQvttUTrv1oEqmGNGTgvvCUiUoJ\/AP4z\/UyMz8lXGOLpu15jIMxBbTR0gmD5uBoFvhC4KWeALQRp3h\/X\/AwcVD0K8Wj9H\/ZzYKzcCNHosB9oS4SCJJFWiN85P9ICAc4OgCoE\/wHKIY7CDkf2\/DQ1vqGvk4smVe5cRDEmrLPCWi4FC8p40VUhSmWQ5udCm0zoJtorgWv3vbDQw0kKYkwn39ozAnQXDe+YvWMxkLFWA+O3TFwkJvdkIK+\/AUSnRssPKt5WHY0FhNOxnSPcLslEL4G4\/RfP95ve99U+kRnDy3X+KtzdQLY+u935ghON\/o3UE4IMv9oN6JX9RnxzL\/LRcOgnHigxStSGPKsZYtnz8RWNVT\/rOLAibqiWJadC5MYHRbekF3eg6FOGrQGkXYbsn0+a5aovnlLCbLwIqY9fcS17UX8J235iQ6cdmHNbrPeS84CMm34RA==&affiliate_id=1052423&strip_google_tagmanager=true\" loading=\"lazy\" data-with-title=\"true\" class=\"fiverr_nga_frame\" frameborder=\"0\" height=\"350\" width=\"100%\" referrerpolicy=\"no-referrer-when-downgrade\" data-mode=\"random_gigs\" onload=\" var frame = this; var script = document.createElement('script'); script.addEventListener('load', function() { window.FW_SDK.register(frame); }); script.setAttribute('src', 'https:\/\/www.fiverr.com\/gig_widgets\/sdk'); document.body.appendChild(script); \" ><\/iframe>\n<br \/><a href=\"https:\/\/www.cloudsavvyit.com\/15480\/how-to-set-variables-in-your-gitlab-ci-pipelines\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitLab CI\u2019s Variables system lets you inject data into your CI job environments. You can use variables to supply config values, create reusable pipelines, and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":843,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-12272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-universe"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog<\/title>\n<meta name=\"description\" content=\"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what&#039;s new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog\" \/>\n<meta property=\"og:description\" content=\"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what&#039;s new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/\" \/>\n<meta property=\"og:site_name\" content=\"mailinvest.blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/freelanceracademic\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-11T16:07:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1602\" \/>\n\t<meta property=\"og:image:height\" content=\"902\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@mailinvest.blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@mailinvest.blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/\"},\"author\":{\"name\":\"admin@mailinvest.blog\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#\\\/schema\\\/person\\\/012701c4c204d4e4ebd34f926cfd31a4\"},\"headline\":\"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT\",\"datePublished\":\"2022-02-11T16:07:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/\"},\"wordCount\":1332,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/266bb4cf.jpg\",\"articleSection\":[\"Tech Universe\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/\",\"url\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/\",\"name\":\"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/266bb4cf.jpg\",\"datePublished\":\"2022-02-11T16:07:08+00:00\",\"description\":\"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what's new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/266bb4cf.jpg\",\"contentUrl\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/266bb4cf.jpg\",\"width\":1602,\"height\":902},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/2022\\\/02\\\/11\\\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mailinvest.blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#website\",\"url\":\"https:\\\/\\\/mailinvest.blog\\\/\",\"name\":\"mailinvest.blog\",\"description\":\"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis. mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what&#039;s new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.\",\"publisher\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mailinvest.blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#organization\",\"name\":\"mailinvest\",\"url\":\"https:\\\/\\\/mailinvest.blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/default.png\",\"contentUrl\":\"https:\\\/\\\/mailinvest.blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/default.png\",\"width\":1000,\"height\":1000,\"caption\":\"mailinvest\"},\"image\":{\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/freelanceracademic\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mailinvest.blog\\\/#\\\/schema\\\/person\\\/012701c4c204d4e4ebd34f926cfd31a4\",\"name\":\"admin@mailinvest.blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g\",\"caption\":\"admin@mailinvest.blog\"},\"sameAs\":[\"https:\\\/\\\/mailinvest.blog\",\"admin@mailinvest.blog\"],\"url\":\"https:\\\/\\\/mailinvest.blog\\\/index.php\\\/author\\\/adminmailinvest-blog\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog","description":"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what's new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog","og_description":"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what's new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.","og_url":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/","og_site_name":"mailinvest.blog","article_publisher":"https:\/\/www.facebook.com\/freelanceracademic\/","article_published_time":"2022-02-11T16:07:08+00:00","og_image":[{"width":1602,"height":902,"url":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg","type":"image\/jpeg"}],"author":"admin@mailinvest.blog","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin@mailinvest.blog","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#article","isPartOf":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/"},"author":{"name":"admin@mailinvest.blog","@id":"https:\/\/mailinvest.blog\/#\/schema\/person\/012701c4c204d4e4ebd34f926cfd31a4"},"headline":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT","datePublished":"2022-02-11T16:07:08+00:00","mainEntityOfPage":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/"},"wordCount":1332,"commentCount":0,"publisher":{"@id":"https:\/\/mailinvest.blog\/#organization"},"image":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#primaryimage"},"thumbnailUrl":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg","articleSection":["Tech Universe"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/","url":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/","name":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT - mailinvest.blog","isPartOf":{"@id":"https:\/\/mailinvest.blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#primaryimage"},"image":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#primaryimage"},"thumbnailUrl":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg","datePublished":"2022-02-11T16:07:08+00:00","description":"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis.mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what's new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.","breadcrumb":{"@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#primaryimage","url":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg","contentUrl":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/266bb4cf.jpg","width":1602,"height":902},{"@type":"BreadcrumbList","@id":"https:\/\/mailinvest.blog\/index.php\/2022\/02\/11\/how-to-set-variables-in-your-gitlab-ci-pipelines-cloudsavvy-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mailinvest.blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Variables In Your GitLab CI Pipelines \u2013 CloudSavvy IT"}]},{"@type":"WebSite","@id":"https:\/\/mailinvest.blog\/#website","url":"https:\/\/mailinvest.blog\/","name":"mailinvest.blog","description":"Technology is forever changing, and there are always new pieces of technology to replace obsolete ones. Tons of people enjoy reading tech blogs on a daily basis. mailinvest.blog tracks all the latest consumer technology breakthroughs and shows you what&#039;s new, what matters and how technology can enrich your life. mailinvest.blog also provides the information, tools, and advice that helps when deciding what to buy.","publisher":{"@id":"https:\/\/mailinvest.blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mailinvest.blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/mailinvest.blog\/#organization","name":"mailinvest","url":"https:\/\/mailinvest.blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mailinvest.blog\/#\/schema\/logo\/image\/","url":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/default.png","contentUrl":"https:\/\/mailinvest.blog\/wp-content\/uploads\/2022\/01\/default.png","width":1000,"height":1000,"caption":"mailinvest"},"image":{"@id":"https:\/\/mailinvest.blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/freelanceracademic\/"]},{"@type":"Person","@id":"https:\/\/mailinvest.blog\/#\/schema\/person\/012701c4c204d4e4ebd34f926cfd31a4","name":"admin@mailinvest.blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/98ed217bd0f3d6a6dcae2d9b0c76e305b049a07275e315e1407e19ec8b08e139?s=96&d=mm&r=g","caption":"admin@mailinvest.blog"},"sameAs":["https:\/\/mailinvest.blog","admin@mailinvest.blog"],"url":"https:\/\/mailinvest.blog\/index.php\/author\/adminmailinvest-blog\/"}]}},"_links":{"self":[{"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/posts\/12272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/comments?post=12272"}],"version-history":[{"count":0,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/posts\/12272\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/media\/843"}],"wp:attachment":[{"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/media?parent=12272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/categories?post=12272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mailinvest.blog\/index.php\/wp-json\/wp\/v2\/tags?post=12272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}