All variables are strings
Note that in scripts all Octopus variables are strings even if they look like numbers or other data types. You will need to cast to the appropriate type before using the value if you need something other than a string.
Let's consider an example where we have defined a project variable called
# It's a good idea to copy the value into a local variable to avoid quoting issues $connectionString = $OctopusParameters["MyApp.ConnectionString"] Write-Host "Connection string is: $connectionString"
// It's a good idea to copy the value into a local variable to avoid quoting issues var connectionString = Octopus.Parameters["MyApp.ConnectionString"]; Console.WriteLine("MyApp.ConnectionString: " + connectionString);
# It's a good idea to copy the value into a variable to avoid quoting issues connectionString=$(get_octopusvariable "MyApp.ConnectionString") echo "Connection string is: $connectionString"
// It's a good idea to copy the value into a variable to avoid quoting issues // tryFindVariable : name:string -> string option let connectionString = Octopus.tryFindVariable "MyApp.ConnectionString" match connectionString with | Some x -> printf "Connection string is: %s" x | None -> printf "Connection string not found" // Or one of the simplified versions // Throws KeyNotFoundException when variable does not exist // findVariable : name:string -> string let connectionString = Octopus.findVariable "MyApp.ConnectionString" // Returns default value when variable does not exist // findVariableOrDefault : defaultValue:string -> name:string -> string let connectionString = Octopus.findVariableOrDefault "Default Value" "MyApp.ConnectionString"
connectionString = get_octopusvariable("MyApp.ConnectionString") print(connectionString)
To see the F# API available to your F# scripts, take a look at our F# signature file.
Variables in PowerShell Scripts
In PowerShell we have pre-defined some script-scoped variables for you as a convenience. Consider the same example as before, a variable named "MyApp.ConnectionString" will be available as both:
In the first form the variable name appears just as they appear in the Octopus web portal, while in the second example special characters have been removed. The first form is the most flexible, but in some cases the second form may be more convenient.
We fixed an issue which was causing a collision with variables called
$key. You can either rename your variable or update to Octopus 3.3.10 or newer.