<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Managing SAS Viya Code with GitLab – Looking for DevOps Best Practices in SAS Viya</title>
    <link>https://communities.sas.com/t5/SAS-Viya/Managing-SAS-Viya-Code-with-GitLab-Looking-for-DevOps-Best/m-p/984439#M3041</link>
    <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;Our SAS Viya setup is structured as follows:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SAS Code:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Engine – holds common code shared across all campaigns&lt;BR /&gt;Campaigns (Campaign 1, Campaign 2, etc.) – contains code specific to each campaign&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Shared Libraries:&lt;/STRONG&gt;&lt;BR /&gt;Input datasets – common input files and SAS datasets used across campaigns&lt;BR /&gt;Output datasets – campaign-specific output files and SAS datasets generated at runtime&lt;BR /&gt;&lt;STRONG&gt;Database Libraries&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;These point to the respective database instance depending on which environment the code runs in.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;The SAS code will be version controlled in GitLab, but the shared and database libraries will live under the /shared folder in SAS Viya and won't be pushed to GitLab. Since we have a single SAS Viya server(Production Instance), we are handling dev, pre-prod, and prod as logical separations within it.&lt;/P&gt;
&lt;P&gt;Here is what I am trying to figure out:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GitLab version control – What are the recommended practices for managing SAS code check-in and check-out using GitLab in this kind of setup?&lt;/LI&gt;
&lt;LI&gt;Dynamic environment variables – How do we pass environment-specific variables at runtime so the SAS code automatically knows which environment it is running in and behaves accordingly?&lt;/LI&gt;
&lt;LI&gt;Environment-specific shared libraries – How do we maintain separate shared libraries for dev, pre-prod, and prod, and dynamically reference the correct one from within the SAS code?&lt;/LI&gt;
&lt;LI&gt;Beyond these, I am also looking for guidance on the overall DevOps workflow that fits this setup, including the steps developers should follow day to day. Equally important is making sure there are guardrails in place so developers cannot accidentally modify or overwrite pre-prod or prod shared files while working in dev.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Any suggestions, experiences, or pointers to relevant documentation would be really helpful. Thanks in advance!&lt;/P&gt;</description>
    <pubDate>Fri, 06 Mar 2026 21:31:16 GMT</pubDate>
    <dc:creator>Somu</dc:creator>
    <dc:date>2026-03-06T21:31:16Z</dc:date>
    <item>
      <title>Managing SAS Viya Code with GitLab – Looking for DevOps Best Practices</title>
      <link>https://communities.sas.com/t5/SAS-Viya/Managing-SAS-Viya-Code-with-GitLab-Looking-for-DevOps-Best/m-p/984439#M3041</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;Our SAS Viya setup is structured as follows:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SAS Code:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Engine – holds common code shared across all campaigns&lt;BR /&gt;Campaigns (Campaign 1, Campaign 2, etc.) – contains code specific to each campaign&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Shared Libraries:&lt;/STRONG&gt;&lt;BR /&gt;Input datasets – common input files and SAS datasets used across campaigns&lt;BR /&gt;Output datasets – campaign-specific output files and SAS datasets generated at runtime&lt;BR /&gt;&lt;STRONG&gt;Database Libraries&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;These point to the respective database instance depending on which environment the code runs in.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;The SAS code will be version controlled in GitLab, but the shared and database libraries will live under the /shared folder in SAS Viya and won't be pushed to GitLab. Since we have a single SAS Viya server(Production Instance), we are handling dev, pre-prod, and prod as logical separations within it.&lt;/P&gt;
&lt;P&gt;Here is what I am trying to figure out:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GitLab version control – What are the recommended practices for managing SAS code check-in and check-out using GitLab in this kind of setup?&lt;/LI&gt;
&lt;LI&gt;Dynamic environment variables – How do we pass environment-specific variables at runtime so the SAS code automatically knows which environment it is running in and behaves accordingly?&lt;/LI&gt;
&lt;LI&gt;Environment-specific shared libraries – How do we maintain separate shared libraries for dev, pre-prod, and prod, and dynamically reference the correct one from within the SAS code?&lt;/LI&gt;
&lt;LI&gt;Beyond these, I am also looking for guidance on the overall DevOps workflow that fits this setup, including the steps developers should follow day to day. Equally important is making sure there are guardrails in place so developers cannot accidentally modify or overwrite pre-prod or prod shared files while working in dev.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Any suggestions, experiences, or pointers to relevant documentation would be really helpful. Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Fri, 06 Mar 2026 21:31:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Viya/Managing-SAS-Viya-Code-with-GitLab-Looking-for-DevOps-Best/m-p/984439#M3041</guid>
      <dc:creator>Somu</dc:creator>
      <dc:date>2026-03-06T21:31:16Z</dc:date>
    </item>
  </channel>
</rss>

