上下文

提供在工作流执行过程中可用的上下文信息,例如内置变量和内置函数。

内置变量

步骤字段中可用的内置变量。注意在非条件字段中使用时需要使用模板写法,详见内置变量

“权限等级”字段表示该内置变量对应路径在访问时所需要的权限等级。

ExitCode

WARNING

默认状态下工作流会以严格模式执行,因此需要在package.toml中显式申明关闭严格模式后才能正常使用此内置变量。

使用此变量并不符合最佳实践,请尽可能减少使用。

上一步骤的退出码,类型为整数。若步骤被正常执行则其值为 0,否则不为 0。

  • 权限等级:Normal
  • 示例值:0
  • 示例:
    # 条件字段中使用 if = 'ExitCode==0'

PackageVersion

当前包的版本号

  • 权限等级:Normal
  • 示例值:1.0.0.0
  • 示例:
    # 条件字段中使用 if = 'PackageVersion=="1.0.0.0"'

DefaultLocation

当前包的默认安装位置

  • 权限等级:Normal
  • 示例值:C:/Users/UserName/ept/Microsoft/VSCode
  • 示例:
    # 非条件字段中使用 to = "${DefaultLocation}/config" # 条件字段中使用 if = 'DefaultLocation=="C:/Users/UserName/ept/Microsoft/VSCode"'

SystemDrive

系统盘符

  • 权限等级:Sensitive
  • 示例值:C:
  • 示例:
    # 非条件字段中使用 to = "${SystemDrive}/Windows/system32" # 条件字段中使用 if = 'SystemDrive=="C:"'

Home

用户主目录

  • 权限等级:Important
  • 示例值:C:/Users/UserName
  • 示例:
    # 非条件字段中使用 to = "${Home}/Document" # 条件字段中使用 if = 'Home=="C:/Users/UserName"'

AppData

应用数据目录

WARNING

注意:此变量和 Windows 系统内的 %appdata% 变量表示的目录位置不同,其不会自动在末尾加上Roaming

  • 权限等级:Sensitive
  • 示例值:C:/Users/UserName/AppData
  • 示例:
    # 非条件字段中使用 to = "${AppData}/Roaming/Microsoft/Windows/Start Menu" # 条件字段中使用 if = 'AppData=="C:/Users/UserName/AppData"'

ProgramFiles_X64

ProgramFiles 目录

  • 权限等级:Sensitive
  • 示例值:C:/Program Files
  • 示例:
    # 非条件字段中使用 to = "${ProgramFiles_X64}/Microsoft/Windows" # 条件字段中使用 if = 'ProgramFiles_X64=="C:/Program Files"'

ProgramFiles_X86

ProgramFiles (x86) 目录

  • 权限等级:Sensitive
  • 示例值:C:/Program Files (x86)
  • 示例:
    # 非条件字段中使用 to = "${ProgramFiles_X86}/Microsoft" # 条件字段中使用 if = 'ProgramFiles_X86=="C:/Program Files (x86)"'

Desktop

当前用户桌面目录

  • 权限等级:Important
  • 示例值:C:/Users/UserName/Desktop
  • 示例:
    # 非条件字段中使用 to = "${Desktop}" # 条件字段中使用 if = 'Desktop=="C:/Users/UserName/Desktop"'

PublicDesktop

公用桌面目录

  • 权限等级:Important
  • 示例值:C:/Users/Public/Desktop
  • 示例:
    # 非条件字段中使用 to = "${PublicDesktop}" # 条件字段中使用 if = 'PublicDesktop=="C:/Users/Public/Desktop"'

Arch

运行时系统架构,可能的值:X64 X86 ARM64

  • 权限等级:Normal
  • 示例值:X64
  • 示例:
    # 条件字段中使用 if = 'Arch=="X64"'

内置函数

步骤的条件语句可用的内置变量。当前版本提供的内置变量都是输入为String输出为Bool的简单函数。

Exist

检查某个路径指向的文件或目录是否存在

  • 入参校验:需要输入合法的路径
  • 示例:if = 'Exist("${SystemDrive}/Windows")'
  • 权限:
    • 类型:fs_read
    • 等级:根据输入路径决定

IsAlive

检查某个进程是否正在运行

  • 入参校验:需要以 .exe 结尾
  • 示例:if = 'IsAlive("code.exe")'
  • 权限:

IsDirectory

检查某个路径是否指向一个目录

  • 入参校验:需要输入合法的路径
  • 示例:if = 'IsDirectory("${SystemDrive}/Windows")'
  • 权限:
    • 类型:fs_read
    • 等级:根据输入路径决定

IsInstalled

检查某个包是否已被 ept 安装

  • 入参校验:需要匹配模式 'SCOPE/NAME'
  • 示例:if = 'IsInstalled("Microsoft/VSCode")'
  • 权限: