Config File

The config file is JSONC, allowing for comments in the file.

It follows the JSON-Schema 2019-09 as defined here.

Example of the runreal.config.json

runreal.config.json
{
  "project": {
    "name": "MinimalProject"
  },
  "engine": {
    "source": "https://github.com/runreal/test-engine",
    "branch": "main"
  },
  "git": {
    "mirrors": true
  },
  "workflows": [
    {
      "name": "compile editor",
      "steps": [
        { "command": "runreal debug" },
        { "command": "runreal engine install" },
        { "command": "runreal engine update", "args": ["--setup"] },
        { "command": "runreal build Editor" },
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml",
            "-set:BuildId=${build.id}",
            "-set:ProjectName=${project.name}",
            "-set:ProjectPath=${project.path}",
            "-set:OutputPath=${build.path}",
            "-Target=Build Clients",
            "-ListOnly" // debug buildgraph only
          ]
        }
      ]
    },
    {
      "name": "compile client",
      "steps": [
        { "command": "runreal debug" },
        { "command": "runreal engine install" },
        { "command": "runreal engine update", "args": ["--setup"] },
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml",
            "-set:BuildId=${build.id}",
            "-set:ProjectName=${project.name}",
            "-set:ProjectPath=${project.path}",
            "-set:OutputPath=${build.path}",
            "-Target=Build Clients"
          ]
        }
      ]
    },
    {
      "name": "compile server",
      "steps": [
        { "command": "runreal debug" },
        { "command": "runreal engine install" },
        { "command": "runreal engine update", "args": ["--setup"] },
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml",
            "-set:BuildId=${build.id}",
            "-set:ProjectName=${project.name}",
            "-set:ProjectPath=${project.path}",
            "-set:OutputPath=${build.path}",
            "-Target=Build Servers"
          ]
        }
      ]
    },
    {
      "name": "cook all",
      "steps": [
        { "command": "runreal debug" },
        { "command": "runreal engine install" },
        { "command": "runreal engine update", "args": ["--setup"] },
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml",
            "-set:BuildId=${build.id}",
            "-set:ProjectName=${project.name}",
            "-set:ProjectPath=${project.path}",
            "-set:OutputPath=${build.path}",
            "-Target=Cook All"
          ]
        }
      ]
    },
    {
      "name": "package client",
      "steps": [
        { "command": "runreal debug" },
        { "command": "runreal engine install" },
        { "command": "runreal engine update", "args": ["--setup"] },
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml",
            "-set:BuildId=${build.id}-${buildkite.buildNumber}",
            "-set:ProjectName=${project.name}",
            "-set:ProjectPath=${project.path}",
            "-set:OutputPath=${build.path}",
            "-set:ClientTargetName=${project.name}Client",
            "-set:ServerTargetName=${project.name}Server",
            "-Target=Package Clients"
          ]
        }
      ]
    }
  ]
}

Templating

Values can be interpolated into the config file using ${} syntax.

runreal.config.json
{
  "project": {
    "name": "TestProject",
    "path": "C:\\Projects\\TestProject"
  },
  ...


  "workflows": [
    {
      "name": "compile editor",
      "steps": [
        {
          "command": "runreal buildgraph run",
          "args": [
            "${project.path}\\BuildGraph\\Build.xml"
          ]
        }
      ]
    }
  ]
  ...