Skip to content

Commit d491558

Browse files
authored
Merge pull request #85 from phpDocumentor/build-pipeline-stablize
Bump build pipeline
2 parents 5ad886e + ee36904 commit d491558

20 files changed

+283
-1552
lines changed

.github/workflows/push.yml

Lines changed: 191 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,196 @@
11
on: push
22
name: Qa workflow
33
jobs:
4-
composer:
4+
setup:
55
runs-on: ubuntu-latest
66
steps:
7-
- uses: actions/checkout@master
8-
- name: composer
9-
uses: docker://composer
10-
env:
11-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
12-
with:
13-
args: install --no-interaction --prefer-dist --optimize-autoloader
14-
- name: Code style check
15-
uses: docker://phpdoc/phpcs-ga:master
16-
env:
17-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18-
with:
19-
args: -d memory_limit=1024M -s
20-
- name: composer-require-checker
21-
uses: docker://phpga/composer-require-checker-ga
22-
env:
23-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24-
with:
25-
args: check --config-file ./composer-require-config.json composer.json
26-
- name: Psalm
27-
uses: docker://mickaelandrieu/psalm-ga
28-
env:
29-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30-
- name: PHPStan
31-
uses: docker://oskarstark/phpstan-ga
32-
env:
33-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34-
with:
35-
args: analyse src tests --level max --configuration phpstan.neon
7+
- uses: actions/checkout@master
8+
- name: Restore/cache vendor folder
9+
uses: actions/cache@v1
10+
with:
11+
path: vendor
12+
key: all-build-${{ hashFiles('**/composer.lock') }}
13+
restore-keys: |
14+
all-build-${{ hashFiles('**/composer.lock') }}
15+
all-build-
16+
- name: Restore/cache tools folder
17+
uses: actions/cache@v1
18+
with:
19+
path: tools
20+
key: all-tools-${{ github.sha }}
21+
restore-keys: |
22+
all-tools-${{ github.sha }}-
23+
all-tools-
24+
- name: composer
25+
uses: docker://composer
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
with:
29+
args: install --no-interaction --prefer-dist --optimize-autoloader
30+
- name: composer-require-checker
31+
uses: docker://phpga/composer-require-checker-ga
32+
env:
33+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34+
with:
35+
args: check --config-file ./composer-require-config.json composer.json
36+
- name: Install phive
37+
run: make install-phive
38+
- name: Install PHAR dependencies
39+
run: tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,D2CCAC42F6295E7D,E82B2FB314E9906E,8E730BA25823D8B5 --force-accept-unsigned
40+
41+
phpunit-with-coverage:
42+
runs-on: ubuntu-latest
43+
name: Unit tests
44+
needs: setup
45+
steps:
46+
- uses: actions/checkout@master
47+
- name: Restore/cache vendor folder
48+
uses: actions/cache@v1
49+
with:
50+
path: vendor
51+
key: all-build-${{ hashFiles('**/composer.lock') }}
52+
restore-keys: |
53+
all-build-${{ hashFiles('**/composer.lock') }}
54+
all-build-
55+
- name: Restore/cache tools folder
56+
uses: actions/cache@v1
57+
with:
58+
path: tools
59+
key: all-tools-${{ github.sha }}
60+
restore-keys: |
61+
all-tools-${{ github.sha }}-
62+
all-tools-
63+
- name: Setup PHP
64+
uses: shivammathur/setup-php@master
65+
with:
66+
php-version: 7.2
67+
extension-csv: mbstring, intl, iconv, libxml, dom, json, simplexml, zlib
68+
ini-values-csv: memory_limit=2G, display_errors=On, error_reporting=-1
69+
coverage: xdebug
70+
pecl: false
71+
- name: Run PHPUnit
72+
run: php tools/phpunit
73+
74+
phpunit:
75+
runs-on: ${{ matrix.operating-system }}
76+
strategy:
77+
matrix:
78+
operating-system:
79+
- ubuntu-latest
80+
- windows-latest
81+
- macOS-latest
82+
php-versions: ['7.2', '7.3', '7.4']
83+
name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }}
84+
needs:
85+
- setup
86+
- phpunit-with-coverage
87+
steps:
88+
- uses: actions/checkout@master
89+
- name: Restore/cache vendor folder
90+
uses: actions/cache@v1
91+
with:
92+
path: vendor
93+
key: all-build-${{ hashFiles('**/composer.lock') }}
94+
restore-keys: |
95+
all-build-${{ hashFiles('**/composer.lock') }}
96+
all-build-
97+
- name: Restore/cache tools folder
98+
uses: actions/cache@v1
99+
with:
100+
path: tools
101+
key: all-tools-${{ github.sha }}
102+
restore-keys: |
103+
all-tools-${{ github.sha }}-
104+
all-tools-
105+
- name: Setup PHP
106+
uses: shivammathur/setup-php@master
107+
with:
108+
php-version: ${{ matrix.php-versions }}
109+
extension-csv: mbstring, intl, iconv, libxml, dom, json, simplexml, zlib
110+
ini-values-csv: memory_limit=2G, display_errors=On, error_reporting=-1
111+
pecl: false
112+
- name: Run PHPUnit
113+
continue-on-error: true
114+
run: php tools/phpunit
115+
116+
codestyle:
117+
runs-on: ubuntu-latest
118+
needs: [setup, phpunit]
119+
steps:
120+
- uses: actions/checkout@master
121+
- name: Restore/cache vendor folder
122+
uses: actions/cache@v1
123+
with:
124+
path: vendor
125+
key: all-build-${{ hashFiles('**/composer.lock') }}
126+
restore-keys: |
127+
all-build-${{ hashFiles('**/composer.lock') }}
128+
all-build-
129+
- name: Restore/cache tools folder
130+
uses: actions/cache@v1
131+
with:
132+
path: tools
133+
key: all-tools-${{ github.sha }}
134+
restore-keys: |
135+
all-tools-${{ github.sha }}-
136+
all-tools-
137+
- name: Code style check
138+
uses: docker://phpdoc/phpcs-ga:latest
139+
env:
140+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
141+
with:
142+
args: -d memory_limit=1024M
143+
144+
phpstan:
145+
runs-on: ubuntu-latest
146+
needs: [setup, phpunit]
147+
steps:
148+
- uses: actions/checkout@master
149+
- name: Restore/cache vendor folder
150+
uses: actions/cache@v1
151+
with:
152+
path: vendor
153+
key: all-build-${{ hashFiles('**/composer.lock') }}
154+
restore-keys: |
155+
all-build-${{ hashFiles('**/composer.lock') }}
156+
all-build-
157+
- name: Restore/cache tools folder
158+
uses: actions/cache@v1
159+
with:
160+
path: tools
161+
key: all-tools-${{ github.sha }}
162+
restore-keys: |
163+
all-tools-${{ github.sha }}-
164+
all-tools-
165+
- name: PHPStan
166+
uses: docker://phpdoc/phpstan-ga:latest
167+
env:
168+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
169+
with:
170+
args: analyse src --level max --configuration phpstan.neon
171+
172+
psalm:
173+
runs-on: ubuntu-latest
174+
needs: [setup, phpunit]
175+
steps:
176+
- uses: actions/checkout@master
177+
- name: Restore/cache vendor folder
178+
uses: actions/cache@v1
179+
with:
180+
path: vendor
181+
key: all-build-${{ hashFiles('**/composer.lock') }}
182+
restore-keys: |
183+
all-build-${{ hashFiles('**/composer.lock') }}
184+
all-build-
185+
- name: Restore/cache tools folder
186+
uses: actions/cache@v1
187+
with:
188+
path: tools
189+
key: all-tools-${{ github.sha }}
190+
restore-keys: |
191+
all-tools-${{ github.sha }}-
192+
all-tools-
193+
- name: Psalm
194+
uses: docker://mickaelandrieu/psalm-ga
195+
env:
196+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.phpunit.result.cache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
C:37:"PHPUnit\Runner\DefaultTestResultCache":9315:{a:2:{s:7:"defects";a:0:{}s:5:"times";a:94:{s:72:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingCollection";d:0.001;s:83:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingCollectionWithKeyType";d:0;s:77:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingArrayCollection";d:0;s:84:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingArrayCollectionWithKey";d:0;s:97:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingArrayCollectionWithKeyAndWhitespace";d:0;s:104:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingArrayCollectionWithKeyAndTooManyWhitespace";d:0;s:84:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingCollectionOfCollection";d:0;s:74:"phpDocumentor\Reflection\CollectionResolverTest::testBadArrayCollectionKey";d:0;s:75:"phpDocumentor\Reflection\CollectionResolverTest::testMissingStartCollection";d:0;s:73:"phpDocumentor\Reflection\CollectionResolverTest::testMissingEndCollection";d:0;s:71:"phpDocumentor\Reflection\CollectionResolverTest::testBadCollectionClass";d:0;s:79:"phpDocumentor\Reflection\CollectionResolverTest::testResolvingCollectionAsArray";d:0;s:60:"phpDocumentor\Reflection\FqsenResolverTest::testResolveFqsen";d:0;s:69:"phpDocumentor\Reflection\FqsenResolverTest::testResolveWithoutContext";d:0;s:64:"phpDocumentor\Reflection\FqsenResolverTest::testResolveFromAlias";d:0;s:71:"phpDocumentor\Reflection\FqsenResolverTest::testResolveFromPartialAlias";d:0;s:94:"phpDocumentor\Reflection\FqsenResolverTest::testResolveThrowsExceptionWhenGarbageInputIsPassed";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #0";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #1";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #2";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #3";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #4";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #5";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #6";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #7";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #8";d:0;s:81:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #9";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #10";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #11";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #12";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #13";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #14";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #15";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #16";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #17";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #18";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #19";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingKeywords with data set #20";d:0;s:88:"phpDocumentor\Reflection\TypeResolverTest::testResolvingFQSENs with data set "namespace"";d:0;s:84:"phpDocumentor\Reflection\TypeResolverTest::testResolvingFQSENs with data set "class"";d:0;s:85:"phpDocumentor\Reflection\TypeResolverTest::testResolvingRelativeQSENsBasedOnNamespace";d:0;s:90:"phpDocumentor\Reflection\TypeResolverTest::testResolvingRelativeQSENsBasedOnNamespaceAlias";d:0;s:67:"phpDocumentor\Reflection\TypeResolverTest::testResolvingTypedArrays";d:0;s:69:"phpDocumentor\Reflection\TypeResolverTest::testResolvingNullableTypes";d:0;s:73:"phpDocumentor\Reflection\TypeResolverTest::testResolvingNestedTypedArrays";d:0;s:69:"phpDocumentor\Reflection\TypeResolverTest::testResolvingCompoundTypes";d:0;s:79:"phpDocumentor\Reflection\TypeResolverTest::testResolvingCompoundTypedArrayTypes";d:0;s:77:"phpDocumentor\Reflection\TypeResolverTest::testResolvingNullableCompoundTypes";d:0;s:83:"phpDocumentor\Reflection\TypeResolverTest::testResolvingArrayExpressionObjectsTypes";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingArrayExpressionSimpleTypes";d:0;s:83:"phpDocumentor\Reflection\TypeResolverTest::testResolvingArrayOfArrayExpressionTypes";d:0;s:97:"phpDocumentor\Reflection\TypeResolverTest::testReturnEmptyCompoundOnAnUnclosedArrayExpressionType";d:0;s:86:"phpDocumentor\Reflection\TypeResolverTest::testResolvingArrayExpressionOrCompoundTypes";d:0;s:85:"phpDocumentor\Reflection\TypeResolverTest::testResolvingIterableExpressionSimpleTypes";d:0;s:82:"phpDocumentor\Reflection\TypeResolverTest::testResolvingCompoundTypesWithTwoArrays";d:0;s:61:"phpDocumentor\Reflection\TypeResolverTest::testAddingAKeyword";d:0.011;s:89:"phpDocumentor\Reflection\TypeResolverTest::testAddingAKeywordFailsIfTypeClassDoesNotExist";d:0;s:106:"phpDocumentor\Reflection\TypeResolverTest::testAddingAKeywordFailsIfTypeClassDoesNotImplementTypeInterface";d:0;s:77:"phpDocumentor\Reflection\TypeResolverTest::testExceptionIsThrownIfTypeIsEmpty";d:0;s:98:"phpDocumentor\Reflection\Types\ArrayTest::testArrayStringifyCorrectly with data set "simple array"";d:0;s:100:"phpDocumentor\Reflection\Types\ArrayTest::testArrayStringifyCorrectly with data set "array of mixed"";d:0;s:106:"phpDocumentor\Reflection\Types\ArrayTest::testArrayStringifyCorrectly with data set "array of single type"";d:0;s:108:"phpDocumentor\Reflection\Types\ArrayTest::testArrayStringifyCorrectly with data set "array of compound type"";d:0;s:105:"phpDocumentor\Reflection\Types\ArrayTest::testArrayStringifyCorrectly with data set "array with key type"";d:0;s:113:"phpDocumentor\Reflection\Types\CollectionTest::testCollectionStringifyCorrectly with data set "simple collection"";d:0;s:127:"phpDocumentor\Reflection\Types\CollectionTest::testCollectionStringifyCorrectly with data set "simple collection with key type"";d:0;s:142:"phpDocumentor\Reflection\Types\CollectionTest::testCollectionStringifyCorrectly with data set "collection of single type using specific class"";d:0;s:160:"phpDocumentor\Reflection\Types\CollectionTest::testCollectionStringifyCorrectly with data set "collection of single type with key type and using specific class"";d:0;s:84:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundCannotBeConstructedFromType";d:0;s:64:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundGetType";d:0;s:75:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundGetNotExistingType";d:0;s:64:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundHasType";d:0;s:75:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundHasNotExistingType";d:0;s:96:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundCanBeConstructedAndStringifiedCorrectly";d:0;s:70:"phpDocumentor\Reflection\Types\CompoundTest::testCompoundCanBeIterated";d:0;s:88:"phpDocumentor\Reflection\Types\ContextFactoryTest::testReadsNamespaceFromClassReflection";d:0.001;s:86:"phpDocumentor\Reflection\Types\ContextFactoryTest::testReadsAliasesFromClassReflection";d:0.001;s:100:"phpDocumentor\Reflection\Types\ContextFactoryTest::testReadsNamespaceFromProvidedNamespaceAndContent";d:0.001;s:98:"phpDocumentor\Reflection\Types\ContextFactoryTest::testReadsAliasesFromProvidedNamespaceAndContent";d:0.001;s:90:"phpDocumentor\Reflection\Types\ContextFactoryTest::testTraitUseIsNotDetectedAsNamespaceUse";d:0;s:107:"phpDocumentor\Reflection\Types\ContextFactoryTest::testAllOpeningBracesAreCheckedWhenSearchingForEndOfClass";d:0;s:68:"phpDocumentor\Reflection\Types\ContextFactoryTest::testEmptyFileName";d:0;s:65:"phpDocumentor\Reflection\Types\ContextFactoryTest::testEvalDClass";d:0;s:76:"phpDocumentor\Reflection\Types\ContextTest::testProvidesANormalizedNamespace";d:0;s:93:"phpDocumentor\Reflection\Types\ContextTest::testInterpretsNamespaceNamedGlobalAsRootNamespace";d:0;s:94:"phpDocumentor\Reflection\Types\ContextTest::testInterpretsNamespaceNamedDefaultAsRootNamespace";d:0;s:82:"phpDocumentor\Reflection\Types\ContextTest::testProvidesNormalizedNamespaceAliases";d:0;s:107:"phpDocumentor\Reflection\Types\IterableTest::testIterableStringifyCorrectly with data set "simple iterable"";d:0;s:109:"phpDocumentor\Reflection\Types\IterableTest::testIterableStringifyCorrectly with data set "iterable of mixed"";d:0;s:115:"phpDocumentor\Reflection\Types\IterableTest::testIterableStringifyCorrectly with data set "iterable of single type"";d:0;s:117:"phpDocumentor\Reflection\Types\IterableTest::testIterableStringifyCorrectly with data set "iterable of compound type"";d:0;s:114:"phpDocumentor\Reflection\Types\IterableTest::testIterableStringifyCorrectly with data set "iterable with key type"";d:0;s:75:"phpDocumentor\Reflection\Types\NullableTest::testNullableTypeWrapsCorrectly";d:0;s:75:"phpDocumentor\Reflection\Types\NullableTest::testNullableStringifyCorrectly";d:0;}}}

.travis.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

Makefile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
.PHONY: install-phive
2+
install-phive:
3+
mkdir tools; \
4+
wget -O tools/phive.phar https://phar.io/releases/phive.phar; \
5+
wget -O tools/phive.phar.asc https://phar.io/releases/phive.phar.asc; \
6+
gpg --keyserver pool.sks-keyservers.net --recv-keys 0x9D8A98B29B2D5D79; \
7+
gpg --verify tools/phive.phar.asc tools/phive.phar; \
8+
chmod +x tools/phive.phar
9+
10+
.PHONY: setup
11+
setup: install-phive
12+
docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phar-ga:latest php tools/phive.phar install --force-accept-unsigned
13+
14+
.PHONY: phpcs
15+
phpcs:
16+
docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpcs-ga:latest -d memory_limit=1024M
17+
18+
.PHONY: phpstan
19+
phpstan:
20+
docker run -it --rm -v${PWD}:/opt/project -w /opt/project phpdoc/phpstan-ga:latest analyse src --no-progress --level max --configuration phpstan.neon
21+
22+
.PHONY: psaml
23+
psalm:
24+
docker run -it --rm -v${PWD}:/opt/project -w /opt/project mickaelandrieu/psalm-ga
25+
26+
.PHONY: test
27+
test:
28+
docker run -it --rm -v${PWD}:/opt/project -w /opt/project php:7.2 tools/phpunit
29+
30+
.PHONY: pre-commit-test
31+
pre-commit-test: test phpcs phpstan psalm
32+

0 commit comments

Comments
 (0)