Skip to content

Specification for platforms file

Sam Gleske edited this page Jul 12, 2015 · 19 revisions

Generic format

This is the general description of the platform format. This will be used when selecting the right supported languages and toolchains based on platform. In this way, we have the flexibility of having a separate lifecycles file and toolchains file on a per platform basis.

{
    "supported_platforms": {
        "somePlatform": {
            "someOS": {
                "language": [
                    "groovy",
                    "java",
                    "python",
                    "ruby"
                ],
                "toolchain": [
                    "env",
                    "gemset",
                    "rvm",
                    "python",
                    "jdk"
                ]
            }
        }
    },
    "restrictions": {
        "somePlatform": {
            "only_organizations": [
                "samrocketman",
                "someorg"
            ],
            "only_projects": [
                "org/project"
            ]
        }
    }
}

Generic format Legend

  1. supported_platforms - Is a full index of all platforms supported by a build system. A platform consists of a name, the operating system, languages supported on that OS, and software build toolchains supported on that OS. Validation: this key is required. The name of the key can't change. The value of the key is a HashMap.
  2. restrictions - sometimes you don't want just anybody to be able to build on a platform. Restrictions restrict who is allowed to build on this platform. Validation: this key is required. The name of the key can't change. The value of the key is a HashMap.