<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Automate Project Management with Rudder CLI and GitLab CI/CD</title><link>https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/</link><description>Recent content in Automate Project Management with Rudder CLI and GitLab CI/CD on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/index.xml" rel="self" type="application/rss+xml"/><item><title>Dev-Tools: Automate Transformations Management with Rudder CLI and GitLab CI/CD</title><link>https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/</guid><description>
&lt;p>This guide explains how to validate, test, and manage your RudderStack transformations directly via GitLab CI/CD pipelines using the Rudder CLI CI/CD components.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="overview" data-heading="Overview" data-level="2" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h2 id="overview">Overview&lt;/h2>&lt;p>By leveraging the &lt;a href="https://gitlab.com/rudderstack/components/rudder-cli" >Rudder CLI GitLab CI/CD components&lt;/a>, you can:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Validate&lt;/strong>: Check your transformation YAML configurations for syntax and structure.&lt;/li>
&lt;li>&lt;strong>Test&lt;/strong>: Execute transformation code against test events using the specialized &lt;code>transformations-test&lt;/code> component.&lt;/li>
&lt;li>&lt;strong>Apply&lt;/strong>: Deploy your transformations and libraries to your RudderStack workspace automatically.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="prerequisites" data-heading="Prerequisites" data-level="2" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>&lt;ul>
&lt;li>A GitLab repository containing your Rudder CLI project files (transformations and libraries).&lt;/li>
&lt;li>A &lt;a href="https://www.rudderstack.com/docs/access-management/service-access-tokens/#workspace-sat" >workspace-level Service Access Token&lt;/a> with the following permissions:&lt;/li>
&lt;/ul>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Resource&lt;/th>
&lt;th style="text-align:left">Permissions&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Transformations&lt;/td>
&lt;td style="text-align:left">&lt;strong>Edit&lt;/strong>, &lt;strong>Connect&lt;/strong>, &lt;strong>Create &amp;amp; Delete&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Transformation Libraries&lt;/td>
&lt;td style="text-align:left">&lt;strong>Edit&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ul>
&lt;li>&lt;strong>For testing or development purposes only&lt;/strong>: Generate a &lt;a href="https://www.rudderstack.com/docs/access-management/personal-access-tokens/" >Personal Access Token&lt;/a> with &lt;strong>Read-Write&lt;/strong> role&lt;/li>
&lt;/ul>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>&lt;strong>RudderStack recommends using a workspace-level Service Access Token for authentication.&lt;/strong>&lt;/p>
&lt;p>Any action authenticated by a Personal Access Token will break if the user is removed from the organization or a breaking change is made to their permissions.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="token-permissions-for-legacy-rbac-system" data-heading="Token permissions for legacy RBAC system" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="token-permissions-for-legacy-rbac-system">Token permissions for legacy RBAC system&lt;/h4>&lt;p>If you are on the &lt;a href="https://www.rudderstack.com/docs/archive/dashboard-guides/user-management/" >legacy Permissions Management (RBAC) system&lt;/a>, your workspace-level Service Access Token should have the &lt;strong>Admin&lt;/strong> role and &lt;strong>Grant edit access&lt;/strong> toggled on under &lt;strong>Transformations&lt;/strong>.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/archive/dashboard-guides/service-access-tokens/#generate-service-access-token" >Generate a workspace-level Service Access Token&lt;/a> for steps to create the token.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/access-management/permissions/legacy/admin-transformations.webp" href="https://www.rudderstack.com/docs/docs/images/access-management/permissions/legacy/admin-transformations.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/access-management/permissions/legacy/admin-transformations.webp"
alt="workspace-level Service Access Token with Transformations Admin permission"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;p>Follow these steps to set up the GitLab CI/CD pipeline for your transformations.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="step-1-configure-cicd-variables" data-heading="Step 1: Configure CI/CD variables" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="step-1-configure-cicd-variables">Step 1: Configure CI/CD variables&lt;/h3>&lt;ol>
&lt;li>
&lt;p>In your GitLab project, go to &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>CI/CD&lt;/strong> &amp;gt; &lt;strong>Variables&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a new variable:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Key&lt;/strong>: &lt;code>RUDDERSTACK_ACCESS_TOKEN&lt;/code>&lt;/li>
&lt;li>&lt;strong>Value&lt;/strong>: The Service Access Token generated in the &lt;a href="#prerequisites" >Prerequisites&lt;/a> section.&lt;/li>
&lt;li>&lt;strong>Type&lt;/strong>: Variable&lt;/li>
&lt;li>&lt;strong>Protect variable&lt;/strong>: Recommended for production branches&lt;/li>
&lt;li>&lt;strong>Mask variable&lt;/strong>: Recommended to hide the token in logs&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="step-2-create-gitlab-cicd-configuration" data-heading="Step 2: Create GitLab CI/CD configuration" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="step-2-create-gitlab-cicd-configuration">Step 2: Create GitLab CI/CD configuration&lt;/h3>&lt;p>Create or update your &lt;code>.gitlab-ci.yml&lt;/code> file in the root of your repository:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">stages&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="l">validate, test, deploy]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">include&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># Validate transformation configurations&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/validate@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># Test modified transformations in merge requests&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/transformations-test@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">applies_to&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;modified&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">verbose&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">true&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">rules&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">if&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_PIPELINE_SOURCE == &amp;#34;merge_request_event&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># Apply changes when merged to the default branch&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/apply@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">rules&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">if&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Replace &lt;code>&amp;lt;VERSION&amp;gt;&lt;/code> with the latest version of the Rudder CLI component.&lt;/p>
&lt;p>See the &lt;a href="https://gitlab.com/rudderstack/components/rudder-cli/-/releases" >Rudder CLI GitLab component releases&lt;/a> for the latest version.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="components" data-heading="Components" data-level="2" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h2 id="components">Components&lt;/h2>&lt;p>The following Rudder CLI CI/CD components are available for managing transformations:&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="validate" data-heading="&lt;code>validate&lt;/code>" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="validate">&lt;code>validate&lt;/code>&lt;/h3>&lt;p>This component validates the project structure and YAML configurations in the specified directory. By default, jobs defined in this component run in the &lt;code>validate&lt;/code> stage.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="example" data-heading="Example" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="example">Example&lt;/h4>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">include&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/validate@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="inputs" data-heading="Inputs" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="inputs">Inputs&lt;/h4>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Input&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;th style="text-align:left">Default value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>location&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">Path to the folder containing Rudder CLI project files&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>access_token&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">RudderStack access token&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>cli_version&lt;/code>&lt;/td>
&lt;td style="text-align:left">Version of the Rudder CLI tool to use&lt;/td>
&lt;td style="text-align:left">&lt;code>0.13.1&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>stage&lt;/code>&lt;/td>
&lt;td style="text-align:left">Stage in which the job should run&lt;/td>
&lt;td style="text-align:left">&lt;code>validate&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="transformations-test" data-heading="&lt;code>transformations-test&lt;/code>" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="transformations-test">&lt;code>transformations-test&lt;/code>&lt;/h3>&lt;p>This component tests transformations defined in your project by executing their code against test input events. By default, jobs defined in this component run in the &lt;code>test&lt;/code> stage.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="example-1" data-heading="Example" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="example-1">Example&lt;/h4>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">include&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/transformations-test@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">applies_to&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;modified&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="inputs-1" data-heading="Inputs" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="inputs-1">Inputs&lt;/h4>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Input&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;th style="text-align:left">Default value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>location&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">Path to the folder containing Rudder CLI project files&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>access_token&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">RudderStack access token&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>applies_to&lt;/code>&lt;/td>
&lt;td style="text-align:left">Test mode: &lt;code>all&lt;/code> or &lt;code>modified&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>modified&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>verbose&lt;/code>&lt;/td>
&lt;td style="text-align:left">Show detailed output including diffs for failures&lt;/td>
&lt;td style="text-align:left">&lt;code>false&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>cli_version&lt;/code>&lt;/td>
&lt;td style="text-align:left">Version of the Rudder CLI tool to use&lt;/td>
&lt;td style="text-align:left">&lt;code>0.13.1&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>stage&lt;/code>&lt;/td>
&lt;td style="text-align:left">Stage in which the job should run&lt;/td>
&lt;td style="text-align:left">&lt;code>test&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="apply" data-heading="&lt;code>apply&lt;/code>" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="apply">&lt;code>apply&lt;/code>&lt;/h3>&lt;p>This component syncs the transformation and library definitions in the specified directory to your RudderStack workspace. By default, jobs defined in this component run in the &lt;code>deploy&lt;/code> stage.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="example-2" data-heading="Example" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="example-2">Example&lt;/h4>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">include&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/apply@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">inputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">location&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;project/&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">access_token&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$RUDDERSTACK_ACCESS_TOKEN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="inputs-2" data-heading="Inputs" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="inputs-2">Inputs&lt;/h4>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Input&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;th style="text-align:left">Default value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>location&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">Path to the folder containing Rudder CLI project files.&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>access_token&lt;/code> &lt;br /> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">RudderStack access token&lt;/td>
&lt;td style="text-align:left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>dry_run&lt;/code>&lt;/td>
&lt;td style="text-align:left">Enable dry-run mode to see changes without applying.&lt;/td>
&lt;td style="text-align:left">&lt;code>false&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>cli_version&lt;/code>&lt;/td>
&lt;td style="text-align:left">Version of the Rudder CLI tool to use.&lt;/td>
&lt;td style="text-align:left">&lt;code>0.13.1&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>stage&lt;/code>&lt;/td>
&lt;td style="text-align:left">Stage in which the job should run.&lt;/td>
&lt;td style="text-align:left">&lt;code>deploy&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="transformations-show-default-events" data-heading="&lt;code>transformations-show-default-events&lt;/code>" data-level="3" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h3 id="transformations-show-default-events">&lt;code>transformations-show-default-events&lt;/code>&lt;/h3>&lt;p>This component displays the default test events used when no test files are configured for transformations.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="example-3" data-heading="Example" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="example-3">Example&lt;/h4>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">include&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">component&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">$CI_SERVER_FQDN/rudderstack/components/rudder-cli/transformations-show-default-events@&amp;lt;VERSION&amp;gt;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="inputs-3" data-heading="Inputs" data-level="4" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h4 id="inputs-3">Inputs&lt;/h4>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Input&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;th style="text-align:left">Default value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>cli_version&lt;/code>&lt;/td>
&lt;td style="text-align:left">Version of the Rudder CLI tool to use.&lt;/td>
&lt;td style="text-align:left">&lt;code>0.13.1&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>stage&lt;/code>&lt;/td>
&lt;td style="text-align:left">Stage in which the job should run.&lt;/td>
&lt;td style="text-align:left">&lt;code>test&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-it-works" data-heading="How it works" data-level="2" data-permalink="https://www.rudderstack.com/docs/dev-tools/rudder-cli/gitlab-ci-cd/transformations/" data-title="Automate Transformations Management with Rudder CLI and GitLab CI/CD" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Validation&lt;/strong>: The &lt;code>validate&lt;/code> component ensures your project files are correctly structured before any further steps.&lt;/li>
&lt;li>&lt;strong>Testing&lt;/strong>: The &lt;code>transformations-test&lt;/code> component runs your transformation code against defined test cases. Using &lt;code>applies_to: modified&lt;/code> in merge requests is recommended for faster feedback.&lt;/li>
&lt;li>&lt;strong>Deployment&lt;/strong>: When changes are merged into the default branch, the &lt;code>apply&lt;/code> component pushes the updates to your RudderStack workspace.&lt;/li>
&lt;/ul></description></item></channel></rss>