Introduction
RISC OS Build service is a cloud based general RISC OS build system. It can also be supplied a Zip archive, as described on the home page, which contains the JFPatch source and patch files, and it will build these. This is only one of the modes in which it can function. If the Zip archive contains a configuration file, the RISC OS Build service system will interpret this as build instructions and return the results.
Build configuration
The build configuration is held in a file with the RISC OS filename '/robuild/yaml
', '/robuild/yml
' or '/robuild
'. The YAML format has been allocated the filetype &F74, although the file does not have to have this filetype assigned to it.
The file may be stored in the Zip archive using either RISC OS zip conventions (using the AC
/ARC0
extra field, as used by most RISC OS tools), or the standard unix conventions, with or without NFS encoding of the filename (ie, the file in the Zip can be called '.robuild.yml
', or '.robuild.yml,f74
' or any of the other variations.
The file is used to define how the build should be performed. The file must contain a dictionary with the following elements:
source
: Defines where the source should be obtained from. Not currently implemented.jobs
: Defines a dictionary of the build jobs which the file declares. Only one job may be defined at present, which it is recommended be called 'build
'.
The jobs
dictionary may contain the following keys:
env
: Declares a dictionary of system variables which should be set before the build.script
: Declares a list of the RISC OS commands to run. Failure of any command will fail the build. More information about the environment can be found in information about the service.artifacts
: Declares a list of artifacts that should be returned. Only one item can exist at present
The artifacts
list items are a dictionary describing how they artifacts are to be
handled:
path
: Declares the path which will be archived.
The YAML file content is restricted to simple expressions. Flow content (eg JSON strings), block strings, anchors and aliases, directives and types are not supported.
Example
An example file, used in the LineEditor build.