Skip to content

Refactor binaries section in instance config JSON file #12

@bogdananton

Description

@bogdananton

A prerequisite for more control on running a specific browser + PHP + PHPUnit version(s) setup.


Constants

OS_WIN="win"
OS_LINUX="linux"
OS_MAC="mac"
ARCH_64="x64"
ARCH_32="32bit"
FILETYPE_TARGZ="tar.gz" # handled by a preprocessor that will un-tar it
FILETYPE_PHAR="phar"
FILETYPE_ZIP="zip"

Note: some archives contain folders or expose a custom file name or multiple files. Should take this into account when extending the Source structure with further post-processing commands.


Structures

Source

shared, non-extendable

url <string>
type <string>   Archive / file type
os <string>     [OS_WIN|OS_LINUX|OS_MAC]
arch <string>   [ARCH_64|ARCH_32]

Binary

question rename to Executable?

base, contains versions

name <string>
versions <Version[]>

PHPUnit

extends Binary

name <string>
versions <PHPVersion[]>

Version

shared, base

id <string>            Version identifier, semver format if available.
sources <Source[]>

PHPVersion extends Version

id <string>            Version identifier, semver format if available.
php <string>           Restriction. Greater than x.x or lower than y.y.
sources <Source[]>

BinaryPool

php <Binary>
phpunit <Binary>
browsers <Object[string:Binary]>
drivers <Object[string:Binary]>

Note: <Object[string:Binary]> or BrowserPool structure (ex: $browserPool->getFirefox()->getVersion($version))


JSON Preview Sample

{
  "binaries": {
    "php": {
      "name": "PHP",
      "versions": [
        {
          "id": "5.6.11",
          "sources": [
            {
              "url": "http://php.net/download/php-5.6.11-win32-vc9-nts.zip",
              "type": "zip",
              "os": "win",
              "arch": "32bit"
            },
            {
              "url": "http://php.net/download/php-5.6.11-win64-vc9-nts.zip",
              "type": "zip",
              "os": "win",
              "arch": "64bit"
            },
            {
              "url": "http://php.net/download/php-5.6.11-1ubuntu3.1.tar.gz",
              "type": "tar.gz",
              "os": "linux",
              "arch": "64bit"
            }
          ]
        }
      ]
    },
    "phpunit": {
      "name": "PHPUnit",
      "versions": [
        {
          "id": "5.1.0",
          "php": "^5.5",
          "sources": [
            {
              "url": "http://phpunit.de/download/phpunit-5.1.0.112.phar",
              "type": "phar",
              "os": "*",
              "arch": "*"
            }
          ]
        },
        {
          "id": "4.7.8",
          "php": "*",
          "sources": [
            {
              "url": "http://phpunit.de/download/phpunit-5.1.0.112.phar",
              "type": "phar",
              "os": "*",
              "arch": "*"
            }
          ]
        }
      ]
    },
    "browsers": {
      "firefox": {
        "name": "Mozilla Firefox browser",
        "versions": [
          {
            "id": "26.0.111.22",
            "sources": [
              {
                "url": "http://download.mozilla.com/firefox/?os=win&arch=64&build=v26.0.111.22",
                "type": "tar.gz",
                "os": "win",
                "arch": "64bit"
              }
            ]
          }
        ]
      }
    },
    "drivers": {

    }
  }
}

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions