build: root_path: './' environment: selenium: false memcached: true elasticsearch: false rabbitmq: false postgresql: false redis: false node: false php: version: 7.1.12 ini: 'date.timezone': 'UTC' hosts: api.phalcon.ld: '127.0.0.1' apache2: modules: ['rewrite'] sites: api: web_root: 'public' host: 'api.phalcon.ld' variables: DATA_API_MYSQL_HOST: "localhost" DATA_API_MYSQL_PASS: "password" DATA_API_MYSQL_USER: "root" DATA_API_MYSQL_NAME: "gonano" DATA_API_MEMCACHED_HOST: "127.0.0.1" DATA_API_MEMCACHED_PORT: 11211 DATA_API_MEMCACHED_WEIGHT: 100 APP_IP: "api.phalcon.ld" cache: directories: - ~/cphalcon dependencies: before: - cd /home/scrutinizer/build - cp storage/ci/.env.example .env - cp storage/ci/phinx.php.example phinx.php - command: 'cd ~/ && git clone -q --depth=1 https://github.com/phalcon/cphalcon.git && cd cphalcon/build && ./install' not_if: 'test -e /home/scrutinizer/cphalcon/build/php7/64bits/modules/phalcon.so' - command: 'cp -v /home/scrutinizer/cphalcon/build/php7/64bits/modules/phalcon.so /home/scrutinizer/.phpenv/versions/7.1.12/lib/php/extensions/no-debug-zts-20160303/' only_if: 'test -e /home/scrutinizer/cphalcon/build/php7/64bits/modules/phalcon.so' - sed -i '$ a \\n[Phalcon]\nextension=phalcon.so\n' /home/scrutinizer/.phpenv/versions/7.1.12/etc/php.ini - php -m | grep -i Phalcon - sudo /etc/init.d/apache2 restart - mysql -e "CREATE DATABASE gonano" - mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');" - mysql -e "FLUSH PRIVILEGES" - cd /home/scrutinizer/build - composer install --no-interaction - ./vendor/bin/phinx migrate - ./vendor/bin/codecept build # project_setup: # override: true tests: override: - phpcs-run --standard=PSR2 --extensions=php --ignore=tests/*,storage/*,vendor/* ./ - command: './vendor/bin/codecept run --coverage-xml' coverage: file: './tests/_output/coverage.xml' format: 'clover' - php-scrutinizer-run --enable-security-analysis filter: paths: ['./*'] excluded_paths: - 'tests/*' - 'storage/*' - 'vendor/*' - 'phinx.php' build_failure_conditions: # No classes/methods with a rating of D or worse - 'elements.rating(<= C).exists' # No new classes/methods with a rating of D or worse allowed - 'elements.rating(<= C).new.exists' # No coding style issues allowed - Removing it for now until we fix index.php - 'issues.label("coding-style").exists' # No new coding style issues allowed - 'issues.label("coding-style").new.exists' # More than 5 new coding style issues. - 'issues.label("coding-style").new.count > 5' # New issues of major or higher severity - 'issues.severity(>= MAJOR).new.exists' # Code Quality Rating drops below 8 - 'project.metric("scrutinizer.quality", < 8)' # Code Coverage drops below 60% - 'project.metric("scrutinizer.test_coverage", < 0.60)' # Code Coverage decreased from previous inspection by more than 10% - 'project.metric_change("scrutinizer.test_coverage", < -0.10)' tools: php_analyzer: true php_mess_detector: true php_code_sniffer: config: standard: PSR2 php_loc: enabled: true excluded_dirs: ['vendor', 'tests', 'storage'] php_cpd: enabled: true excluded_dirs: ['vendor', 'tests', 'storage'] checks: php: verify_property_names: true verify_argument_usable_as_reference: true verify_access_scope_valid: true variable_existence: true useless_calls: true use_statement_alias_conflict: true unused_variables: true unused_properties: true unused_parameters: true unused_methods: true unreachable_code: true too_many_arguments: true symfony_request_injection: true switch_fallthrough_commented: true sql_injection_vulnerabilities: true simplify_boolean_return: true security_vulnerabilities: true return_in_constructor: true return_doc_comments: true return_doc_comment_if_not_inferrable: true require_scope_for_methods: true require_php_tag_first: true property_assignments: true properties_in_camelcaps: true precedence_mistakes: true precedence_in_conditions: true phpunit_assertions: true parse_doc_comments: true parameters_in_camelcaps: true parameter_non_unique: true parameter_doc_comments: true param_doc_comment_if_not_inferrable: true overriding_private_members: true overriding_parameter: true non_commented_empty_catch_block: true no_trait_type_hints: true no_trailing_whitespace: true no_short_variable_names: minimum: '3' no_short_open_tag: true no_short_method_names: minimum: '3' no_property_on_interface: true no_non_implemented_abstract_methods: true no_long_variable_names: maximum: '20' no_goto: true no_exit: true no_eval: true no_error_suppression: true no_debug_code: true more_specific_types_in_doc_comments: true missing_arguments: true method_calls_on_non_object: true instanceof_class_exists: true foreach_usable_as_reference: true foreach_traversable: true fix_use_statements: remove_unused: true preserve_multiple: true preserve_blanklines: false order_alphabetically: true fix_line_ending: true fix_doc_comments: true encourage_shallow_comparison: true duplication: true deprecated_code_usage: true deadlock_detection_in_loops: true comparison_always_same_result: true code_rating: true closure_use_not_conflicting: true closure_use_modifiable: true check_method_contracts: verify_interface_like_constraints: true verify_documented_constraints: true verify_parent_constraints: true catch_class_exists: true call_to_parent_method: true avoid_superglobals: true avoid_length_functions_in_loops: true avoid_duplicate_types: true avoid_closing_tag: true assignment_of_null_return: true argument_type_checks: true remove_extra_empty_lines: true naming_conventions: local_variable: '^[a-z][a-zA-Z0-9]*$' abstract_class_name: ^Abstract|Factory$ utility_class_name: '^[A-Z][a-zA-Z0-9]*$' constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$' property_name: '^[a-z][a-zA-Z0-9]*$' method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$' parameter_name: '^[a-z][a-zA-Z0-9]*$' interface_name: '^[A-Z][a-zA-Z0-9]*Interface$' exception_name: '^[A-Z][a-zA-Z0-9]*Exception$' isser_method_name: '^(?:is|has|should|may|supports|before|after)'
# language: php # tests: true