-
Notifications
You must be signed in to change notification settings - Fork 1
94 lines (85 loc) · 2.15 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: Continuous Integration
on:
push:
branches:
- 'main'
- '[0-9]+.x'
pull_request:
schedule:
- cron: "0 0 * * SAT"
workflow_call:
workflow_dispatch:
permissions:
contents: read
jobs:
settings:
name: Settings
uses: ./.github/workflows/settings.yml
dependencies:
name: Validate composer.json
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install PHP
uses: ./.github/actions/php
- name: Check package versions
run: |
./vendor/bin/monorepo-builder validate
- name: Check unused packages
run: |
./vendor/bin/composer-unused
phpcs:
name: PHP CodeSniffer
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install PHP
uses: ./.github/actions/php
- name: Execute
run: |
./vendor/bin/phpcs --report=checkstyle | cs2pr
phpstan:
name: PHPStan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install PHP
uses: ./.github/actions/php
- name: Execute
run: |
./vendor/bin/phpstan analyse
phpunit:
name: Tests
uses: ./.github/workflows/phpunit.yml
with:
runs-on: '["ubuntu-latest", "windows-latest"]'
phpunit-package:
name: Package tests
needs:
- settings
- phpunit
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.settings.outputs.packages-names) }}
uses: ./.github/workflows/phpunit.yml
with:
package: ${{ matrix.package }}
packages-names: ${{ needs.settings.outputs.packages-names }}
packages-directory: ${{ needs.settings.outputs.packages-directory }}
markdownlint:
name: Markdownlint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Node.js
uses: ./.github/actions/npm
- name: Setup problem matcher
uses: xt0rted/markdownlint-problem-matcher@v2
- name: Execute
run: |
npx markdownlint-cli --ignore-path=.gitignore .