npm package: @prestashopcorp/hosted-config
Description: Configuration for the edition builder
Author: PrestaShop
Latest version: 0.0.8

# Package hosted-config

This package contains all configuration files used to build the PrestaShop Edition.

Configuration files are stored by country.

## Configuration file structure

In order to work properly, the script requires a configuration file.
The configuration file is a `YAML` file composed of multiple sections.

Each section represent an installation step and must be defined in the `config` section.

```yaml
config:
  common:
    ...
  stepgit: (Downloading PrestaShop 8.0.x)
    ...
  stepconfig: (Modifying PrestaShop configuration)
    ...
  stepcorpmodules: (Installing modules made by PrestaShop)
    ...
  steppartnersmodules: (Installing 3rd party free modules)
    ...
  steppaidmodules: (Installing paid modules from the addons marketplace)
    ...
  stepzipmodules: (Installing modules placed inside "modules" folder)
    ...
  stepbuildrelease: (Building the final zip)
    ...
```

### common

The `common` section will define basic informations.

```yaml
common:
    version: 8.0.0
    working_directory: workdir
```

* version : The version of the build to generate
* working_directory : The name of the directory that will store the build

### stepgit

The `stepgit` step will configure git credentials and will clone prestashop repository.

```yaml
stepgit:
  tag: 8.0.0
```

* tag (optional) : Specify a particular PrestaShop tag to clone

### stepconfig

The `stepconfig` step will configure the PrestaShop options.
This will modify values directly on the `install-dev/data/xml/configuration.xml` file.

```yaml
stepconfig:
    configuration:
      [key]: [value]
      # Example :
      # PS_SHOP_ENABLE: 0
      # PS_WEIGHT_UNIT: kg
```

* configuration : A list of key / value pair or an empty array

### stepcorpmodules

The `stepcorpmodules` step will install all corp modules that are not included by default on PrestaShop.

Those modules will be added to composer based on the repository url.

```yaml
stepcorpmodules:
    modules:
      -
        name: ps_mbo
        repo: https://github.com/PrestaShopCorp/ps_mbo
        package: prestashop/ps_mbo
        version: 3.x
```

* modules : A list of modules defined as follow 
  * name : The module name
  * repo : Repository to get the source from
  * package : The package name for the composer file
  * version : The module version

### steppartnersmodules

The `steppartnersmodules` step will install all partners modules that are not included by default on PrestaShop.

Those modules will be installed using a specific addons API to get modules sources.

```yaml
steppartnersmodules:
    partners:
      - 
        id: xxx
        name: ps_checkout
        label: PrestaShop Checkout built with PayPal
```

* partners : A list of modules defined as follow 
  * id : The module id for the API
  * name : The module name
  * label : The module label

### steppaidmodules

The `steppaidmodules` step will install all paid modules that are not included by default on PrestaShop.

Those modules will be installed using a specific addons script available at the url `https://addons.prestashop.com/disneystore/get-file-module.php`.

```yaml
steppaidmodules:
    modules:
      -
        id: xxx
        name: statscompta
        version: 8.0.0.0
        is_theme: true
```

* modules : A list of modules defined as follow 
  * id : The module id
  * name : The module name
  * version (optional) : The prestashop version. The addons script will download the module compatible with the given prestashop version. If not provided, we will download the module with the `version` of the `common` configuration.
   * is_theme (optional) : Set true if the entry is a theme. It will be false by default.

### stepzipmodules

The `stepzipmodules` step will install all modules stored locally.

Those modules will be installed using the zip available on this `smb_edition_builder` module.

```yaml
stepzipmodules:
    modules:
      -
        name: ps_accounts
        source: /modules/1.8/ps_accounts.zip
        is_theme: true
```

* modules : A list of modules defined as follow 
  * name : The module name
  * source : The module source path (from the module directory)
  * is_theme (optional) : Set true if the entry is a theme. It will be false by default.

### stepbuildrelease

The `stepbuildrelease` step will build the PrestaShop release based on the `common:version` version from the configuration file.

This step doesn't need any configuration but must be declared.

```yaml
stepbuildrelease:
```