Checkout Config
build:
root_path: './'
environment:
selenium: false
memcached: true
elasticsearch: false
rabbitmq: false
postgresql: false
redis: true
node: false
php:
version: 7.2
ini:
'date.timezone': 'UTC'
hosts:
api.baka.ld: '127.0.0.1'
apache2:
modules: ['rewrite']
sites:
api:
web_root: 'public'
host: 'api.baka.ld'
variables:
DATA_API_MYSQL_HOST: "127.0.0.1"
DATA_API_MYSQL_PASS: "password"
DATA_API_MYSQL_USER: "root"
DATA_API_MYSQL_NAME: "baka"
DATA_API_MEMCACHED_HOST: "127.0.0.1"
DATA_API_MEMCACHED_PORT: 11211
DATA_API_MEMCACHED_WEIGHT: 100
REDIS_HOST: "127.0.0.1"
REDIS_PORT: 6379
APP_IP: "api.baka.ld"
APP_ENV: development
JWT_SECURITY: 0
GEWAER_APP_ID: 1
PHINX_CONFIG_DIR: "/home/scrutinizer/build/storage"
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 ~/ && rm -rf cphalcon && git clone -b 3.4.x -q --depth=1 https://github.com/phalcon/cphalcon.git && cd cphalcon/build && ./install'
-
command: 'cp -v /home/scrutinizer/cphalcon/build/php7/64bits/modules/phalcon.so /home/scrutinizer/.phpenv/versions/7.2.13/lib/php/extensions/no-debug-zts-2017071'
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.2.13/etc/php.ini
- php -m | grep -i Phalcon
- sudo /etc/init.d/apache2 restart
- beanstalkd -p 11300 &
- mysql -e "CREATE DATABASE baka"
- mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');"
- mysql -e "FLUSH PRIVILEGES"
- cd /home/scrutinizer/build
- composer install --no-interaction
- composer update --no-interaction
- ./vendor/bin/phinx migrate -e development
- ./vendor/bin/phinx seed:run
- ./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'
- 'library/Http/SwooleRequest.php' #it need to be this big , since the phalcon interfase requires it
build_failure_conditions:
# No classes/methods with a rating of D or worse
- 'elements.rating(< D).exists'
# No new classes/methods with a rating of D or worse allowed
- 'elements.rating(< D).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 50%
- 'project.metric("scrutinizer.test_coverage", < 0.45)'
# 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)'
Repository Config
build:
# Variables for all nodes
environment:
variables:
STRIPE_PUBLIC: 'pk_test_JR2CcTZLWGTKsBqbP2zxF1Wb'
STRIPE_SECRET: 'sk_test_I5Fl273qWEovn3MHoUJNgUal'
EMAIL_USER: '[email protected]'
EMAIL_PASS: 111111111111111