Dynamic Packages between environments

(Ian Joynson Crosby) #1

Good morning. Consider the following:

Our QA environment contains all development work completed and being tested by the QA team whereas our UAT environment only contains work signed off on the QA environment. We use TeamCity to build nuget packages for QA as xxx.qa. When the code is merged into UAT a nuget package called xxx.uat is created.

The problem now comes in the release. When we release via OD to QA it picks up (from the TC nuget feed) the correct xxx.qa packages. When we then release to UAT it uses the same packages deployed to QA when I really want to use the xxx.uat packages.

Is this possible? I have had a scan around but can’t quite work out if it is and how to do it.

Any help would be appreciated.



(Paul Calvert) #3

Hi Ian,

Thanks for getting in touch.

The way to achieve this would be to use variables to scope the package name for each environment, and then in your process step, you would input the variable instead of the package name.
We have an article about it here, it is worth taking a read of the tradeoffs section there too.

If you run into any problems setting this up please let me know and I can set up a mock example with screenshots using similar data to yourself.

Best regards,

(Ian Joynson Crosby) #4

Hi Paul,
I have already scoped a variable (by channel) but on release it still comes up with xxx.qa not xxx.uat.



(Paul Calvert) #5

Hi Ian,

If you’re using a QA channel and a UAT channel and creating separate releases for each one then Version Rules may be more useful.
This would then limit the packages that each channel can locate.


(Ian Joynson Crosby) #6

Hi Paul,

No joy I’m afraid. To keep it simple I have decided to rejig my functionality somewhat. I have now created separate channels / lifecycles to separate out QA into its own release using xxx.qa packages and another promotes from UAT towards Production using the xxx.uat packages.

Thanks for the help anyway. It got too confusing :slight_smile:



1 Like