Deployment Agent and Environment Variables
I am using the deployment agent on my remote server to deploy a .net console application.
I have followed the instructions from https://www.appveyor.com/docs/deployment/agent/#overriding-settings... and have succesfully deployed the application to the server. I have set the connection string for the application in the 'Environment variables' section user 'Settings'.
The problem is that no Environment variables is written to the server when the application is deployed. I am looking in 'System Properties' - 'Environment Variables' in a windows environment.
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by Ilya Finkelshte... on 02 Nov, 2018 10:20 PM
Hi Scott,
Those variable can be used by AppVeyor during deployment time, and they are specific to deployment Agent session. They are not being set as a system-wide environment variables.
You can use custom before- or after- deployment scripts (should be in the root of artifact package) to set those variables as you need. Those scripts run during deployment and have access to variables you set up on Environment UI (or send from the build)
So in that script you can do this to make it system wide:
This should happen before your console application start (to ensure app pick up new system variable). So
before-deploy.ps1
is a better candidate.Also I would consider to simple write this connection string to the registry.
Let us know if this works for you.
Ilya.
2 Posted by Scott Vaughan on 05 Nov, 2018 09:26 AM
Thanks for your reply. I am still having some trouble understanding what the Environment Variables section is for within the Appveyor deployment settings page.
I need a different set of values for each agent. Currently I have UAT and PRODUCTION environments which will need different environment variable values for each.
If the Appveyor agent is unable to set these values per environment I may have to use another deployment service.
3 Posted by Ilya Finkelshte... on 05 Nov, 2018 10:03 AM
Environment variables are used to substitute values for deployment settings during deployment time, as described in this part of documentation. In this example
site_name
can be send from the build, and Environment section provides default value (in case no value has been sent from the build).Those environment variables are not being set as system environment variables on the computer where agent is installed (as you probably expect). However they are available to before- and after- deployment scripts and you can use those scripts to update system environment variables on the computer where agent is installed.
As proposed in previous message, you can create
before-deploy.ps1
file, withsetx myVariable $env:myVariable /M
content, and place it in the root of your artifact zip folder. When agent unzips the artifact and sees this file, it will be executed and system variable you need will be set. I assume you set upmyVariable
with proper value in agent environment settings.4 Posted by Scott Vaughan on 05 Nov, 2018 11:03 AM
I think I have sorted it now thanks. I have added the script in my before-deploy.ps1 script.
Thanks for your help.
5 Posted by Ilya Finkelshte... on 05 Nov, 2018 04:10 PM
Great, thank for the update. Feel free to ping us when needed!
Ilya Finkelshteyn closed this discussion on 05 Nov, 2018 04:10 PM.