El fichero de configuración piscosour.json

Este fichero se encuentra en la raiz de todas las recetas y configura todos los aspectos de la aplicación. La configuración es heredada por todas las recetas importada como paquete dentro de una receta.

La configuración efectiva es la mezcla de todas las configuraciones de todas las recetas

(se puede consultar la configuración efectiva de pisco ejecutando pisco -ov)

El módulo Piscosour tiene un fichero de configuración más completo, que podrá ser sobreescrito por cualquier receta. El orden de prioridad en la carga de la configuración es el establecido en el articulo: Introducción de parámetros

Este es el aspecto de piscosour.json del modulo piscosour

{
  "cmd" : "pisco",
  "params" : {
    "plugins" : ["inquirer"]
  },
  "repoTypes": [
    "recipe"
  ],
  "defaultType": "recipe",
  "junitDir": "test-reports",
  "junitPiscoFile": "pisco-junit.xml",
  "stages": [
    "check",
    "config",
    "run",
    "prove",
    "notify"
  ],
  "flowTypes": [
    "normal",
    "parallel",
    "utils",
    "internal"
  ]
}

Las recetas solo deberán informar de la configuración que quieran añadir o sobreescribir. Este es el fichero piscosour.json tipo de una receta:

{
    "cmd": "cells",
    "repoTypes": [
        "component"
    ],
    "defaultType": "component"
}

Explicación de cada parámetro

Si ejecutas

pisco create

es como si estuviera ejecutando

pisco recipe:create

sin embarcon en el ejemplo de abajo

cells create

sería:

cells component:create

notese que corresponden con los métodos a implementar dentro de un step:

    check : function(){
        this.logger.info("#magenta","check","Check all pre-requisites for the execution");
    },

    config : function(){
        this.logger.info("#magenta","config","Preparing params for main execution");
    },

    run : function(){
        this.logger.info("#magenta","run","Run main execution");
    },

    prove : function(){
        this.logger.info("#magenta","prove","Prove that the run execution was ok");
    },

    notify : function(){
        this.logger.info("#magenta","notify","Recollect all execution information and notify");
    }

si en un fichero piscosour.json se añade otra fase está será llamada si el step la tiene implementado. Por ejemplo:

[...]
 "stages": ["final"]
[...]

será llamada después de la ultima fase notify.

[...]
    final : function(){
        this.logger.info("#magenta","notify","Recollect all execution information and notify");
    }
[...]