It seems that the rules for variable substitution based on the most specifically scoped variable does not work correctly when deploying to the same machine:
Steps to reproduce (simplified):
- Having one environment: “Test” with one machine.
- The one machine has two roles: “Webserver” and “Servicehost”.
- One process with two steps: “Deploy webserver” and “Deploy servicehost” respectively deploying a “Webserver-package” to “Webserver” role and “Servicehost-package” to “Servicehost” role.
- Both packages contains a web.config file with a “LogLevel” substitution variable.
The process has a variable defined twice; “LogLevel”, with the following value and scope(s):
- Loglevel - “INFO” - Scope: (none)
- Loglevel - “WARN” - Scope: Test; Servicehost
Result:
On deploy the resulting loglevel becomes WARN in both web.config files (Webserver and Servicehost).
Expected:
“WARN” loglevel on Servicehost, and “INFO” on Webserver (fallback).
The version of Octopus server is 2.6.5.1010.