@@ -4,12 +4,31 @@ commands:
44 prepare :
55 steps :
66 - checkout
7- - run : sudo composer self-update
8- - restore_cache :
9- keys :
10- - composer-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "composer.json" }}
11- - composer-v1-{{ .Environment.CIRCLE_JOB }}
12- - run : composer update --prefer-dist --no-interaction
7+ - run :
8+ name : Perform composer self-update
9+ command : sudo composer self-update
10+ - restore-cache
11+ - run :
12+ name : Enable code coverage
13+ command : |
14+ sudo apt update
15+ sudo apt install libonig-dev
16+ sudo pecl install pcov
17+ sudo docker-php-ext-enable pcov
18+ sudo rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
19+ sudo docker-php-ext-install posix
20+ sudo docker-php-ext-install pcntl
21+ sudo docker-php-ext-install mbstring
22+ - run :
23+ name : Install composer dependencies
24+ command : composer install --no-interaction --prefer-dist
25+ - run :
26+ name : Update composer dependencies
27+ command : composer update --prefer-dist --no-interaction
28+ - save-cache
29+
30+ save-cache :
31+ steps :
1332 - persist_to_workspace :
1433 root : .
1534 paths :
@@ -19,63 +38,108 @@ commands:
1938 key : composer-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "composer.json" }}
2039 paths :
2140 - vendor
22- run-php-compatibility :
23- steps :
24- - run : composer compat
25- run-static-analysis :
41+
42+ restore-cache :
2643 steps :
27- - run : composer analyze
28- run-unit-tests :
44+ - restore_cache :
45+ keys :
46+ - composer-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "composer.json" }}
47+ - composer-v1-{{ .Environment.CIRCLE_JOB }}
48+
49+ run-php-codesniffer :
2950 steps :
30- - run : composer test
31- - store_artifacts :
32- path : build/coverage.xml
51+ - run :
52+ name : Run code quality analysis (PHP CodeSniffer)
53+ command : php ./vendor/bin/phpcs
3354
34- jobs :
35- php_7_3 :
36- docker :
37- - image : circleci/php:7.3
55+ run-phpstan :
3856 steps :
39- - prepare
40- - run-php-compatibility
41- - run-static-analysis
42- - run-unit-tests
43- php_7_4 :
44- docker :
45- - image : circleci/php:7.4
57+ - run :
58+ name : Run static code analysis (PHPStan)
59+ command : php ./vendor/bin/phpstan analyze
60+
61+ run-phpunit :
4662 steps :
47- - prepare
48- - run-static-analysis
49- - run-unit-tests
50- php_8_0 :
63+ - run :
64+ name : Run unit tests (PHPUnit)
65+ command : php ./vendor/bin/phpunit --stop-on-failure --coverage-clover=build/coverage/coverage.xml --coverage-xml=build/coverage/coverage-xml --log-junit=build/coverage/junit.xml
66+ - persist_to_workspace :
67+ root : .
68+ paths :
69+ - src
70+ - tests
71+ - infection.json.dist
72+ - phpunit.xml.dist
73+ - build
74+ - vendor
75+
76+ jobs :
77+ run-unit-tests :
78+ parameters :
79+ php :
80+ type : string
5181 docker :
52- - image : circleci/php:8.0
82+ - image : circleci/php:<< parameters.php >>
5383 steps :
5484 - prepare
55- - run-static-analysis
56- - run-unit-tests
57- snyk :
85+ - run-php-codesniffer
86+ - run-phpstan
87+ - run-phpunit
88+
89+ run-security-tests :
5890 docker :
5991 - image : snyk/snyk-cli:composer
6092 steps :
6193 - attach_workspace :
6294 at : .
6395 - run : snyk test
6496 - run :
65- command : |
66- if [[ "${CIRCLE_BRANCH}" == "master" ]]
67- then
68- snyk monitor --org=auth0-sdks --project-name=laravel-auth0
69- fi
97+ command : snyk monitor --org=auth0-sdks --project-name=laravel-auth0
7098 when : always
7199
100+ run-codecov-uploader :
101+ docker :
102+ - image : circleci/php:7.4
103+ steps :
104+ - attach_workspace :
105+ at : .
106+ - restore-cache
107+ - run :
108+ name : Download and validate Codecov uploader
109+ command : |
110+ curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --import
111+ curl -Os https://uploader.codecov.io/latest/linux/codecov
112+ curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
113+ curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
114+ gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM
115+ shasum -a 256 -c codecov.SHA256SUM
116+ chmod +x codecov
117+ - run :
118+ name : Upload coverage reports to Codecov
119+ command : ./codecov -t ${CODECOV_TOKEN} -f ./build/coverage/coverage.xml
120+
72121workflows :
73- build-and-test :
122+ run-tests :
74123 jobs :
75- - php_7_3
76- - php_7_4
77- - php_8_0
78- - snyk :
124+ - run-unit-tests :
125+ name : run-phpunit-7.3
126+ php : " 7.3"
127+ - run-unit-tests :
128+ name : run-phpunit-7.4
129+ php : " 7.4"
130+ - run-unit-tests :
131+ name : run-phpunit-8.0
132+ php : " 8.0"
133+ - run-security-tests :
134+ filters :
135+ branches :
136+ only :
137+ - main
79138 context : snyk-env
80- requires :
81- - php_7_3
139+ requires : [run-phpunit-7.3]
140+ - run-codecov-uploader :
141+ filters :
142+ branches :
143+ only :
144+ - main
145+ requires : [run-phpunit-7.4]
0 commit comments