Common Windows issues

Cannot access variables from the app

Description

You can’t access the variable directly by using $VAR_NAME.

Solution

You can reference the variable in subsequent parts of your workflow by using $env:VAR_NAME.

However, when using a variable to set another variable in the vars: section, use the following syntax:

  environment:
    vars:
      VAR_1: ---\$VAR_2\---

Using Command Prompt

Description

The default shell on the Windows machines is PowerShell, but you need to run scripts using Command Prompt.

Solution

Invoke the Command Prompt app directly and pass your script as an argument:

  scripts:
    - name: Run a command in Command Prompt
      script: | 
        cmd.exe \c YOUR_COMMAND_HERE

Script with spaces and quotes not behaving as expected

Description

When PowerShell sees a command starting with a string, it just evaluates the string. Typically, this means echoing it to the screen:

PS> "C:\Program Files\Unity Hub\Unity Hub.exe"
Hello World
Solution

If you want PowerShell to interpret the string as a command name, use the call operator (&):

& 'C:\Program Files\Unity Hub\Unity Hub.exe' ...

If you want to use PowerShell to run an .exe file with parameters that contain spaces or quotes, use the Start-Process method:

Start-Process -NoNewWindow -FilePath "path-to-your-exe-file" -ArgumentList 'your-arguments-are-here' -Wait

Wrong value in base64 encoded environment variables

Description

Scripts fail when using base64 encoded variables or use incorrect values.

Solution

Encoded variables need to be decoded back into their original form before they can be used. For example, to decoda a variable $VAR1 and save the result as variable PATH, use the following script:

[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$env:VAR1")) | Out-File -FilePath $env:PATH

Cannot access the build machine using SSH or VNC/RDP

Description

Linux and macOS machines can be accessed using SSH or VNC. However, the access does not work when using a Windows build machine.

Solution

SSH and VNC access is not available on Windows build machines. You can access them using an RDP client instead.

Learn more: Remote access to the build machine.