Skip to content

error in shell plugin not really visible #30

Description

@vinpel

Hello,

The plugin wait for a exit code of 0 for each line.
When i start my build a shell script ".sh" , the last command didn"t finish with this code.
So the shell plugin fail without red message.

Additionnaly, the shell plugin don't stop with the line who cause the error.

in my sample :
the line in error is : "#Deploiement de l'application"
the " - "%BUILD_PATH%vendor/bin/codecept build" is executed with the failure with the deploy.sh script

build_settings:
    verbose: true
    prefer_symlink: false
    allowed_warnings: 2
    ignore:
      - "vendor"
    mysql:
      host: "127.0.0.1"
      user: "root"
      pass: "***"
setup:
  mysql:
    - "DROP DATABASE IF EXISTS TEST_DB_BUILD_%BUILD%;"
    - "CREATE DATABASE TEST_DB_BUILD_%BUILD%;"
    - "GRANT ALL PRIVILEGES ON test.* TO test@'localhost' IDENTIFIED BY 'test';"
  composer:
      directory: "."
      action: "install"
      prefer_dist: true
  shell:
#Global Composer
    - "composer global require \"fxp/composer-asset-plugin:^1.2.0\""
# Installation des modules
    - "chmod +x %BUILD_PATH%modules/install_modules.sh && %BUILD_PATH%modules/install_modules.sh %BUILD_PATH%"
# Réperoire manquant
    - "mkdir %BUILD_PATH%frontend/web/assets"
# Initialisation de l'apllciation
    - "chmod +x %BUILD_PATH%init && %BUILD_PATH%init --env=Development --overwrite=All"
# Modification de la configuration poura voir la bonne base
    - "echo TEST_DB_BUILD_%BUILD%"
    - "echo sed -i -e 's,yii2advanced_test,TEST_DB_BUILD_%BUILD%,g' %BUILD_PATH%common/config/test-local.php"
    - "sed -i -e 's,yii2advanced_test,TEST_DB_BUILD_%BUILD%,g' %BUILD_PATH%common/config/test-local.php"
# Migration de la structure des tables
    - "chmod +x %BUILD_PATH%yii_test"
# Deploiement de l'application
    - "chmod +x %BUILD_PATH%deploy.sh && %BUILD_PATH%deploy.sh yii_test"
# Build codeception    
    - "%BUILD_PATH%vendor/bin/codecept build"

test:
  codeception:
    config: codeception.yml
    allow_failures: false
    args: " -vvv "
  php_cpd:
    allow_failures: true
    ignore:
      - "vendor"
      - frontend/tests/_support/_generated/
  php_loc:
    allow_failures: true
  php_parallel_lint:
    allow_failures: true
  php_docblock_checker:
    allow_failures: true
  technical_debt:
    allow_failures: true
complete:
  mysql:
    - "DROP DATABASE TEST_DB_BUILD_%BUILD%;"
  email:
    default_mailto_address: my@email.com

a minor issue :

src/PHPCensor/Helper/BaseCommandExecutor.php
line 80 :

 $this->lastOutput = [];
        $this->logger->logDebug('Args: ' . json_encode($args));
        $command = call_user_func_array('sprintf', $args);
        $this->logger->logDebug('Command: ' . $command);

in the debug run if "call_user_func_array" fail, you have the log

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions