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
On deploy the resulting loglevel becomes WARN in both web.config files (Webserver and Servicehost).
“WARN” loglevel on Servicehost, and “INFO” on Webserver (fallback).
The version of Octopus server is 188.8.131.520.