Skip to content

Commit 001b391

Browse files
committed
Replace super-linter with a reusable workflow
1 parent 3102caf commit 001b391

File tree

1 file changed

+116
-120
lines changed

1 file changed

+116
-120
lines changed

.github/workflows/php.yml

Lines changed: 116 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -14,132 +14,33 @@ on: # yamllint disable-line rule:truthy
1414
workflow_dispatch:
1515

1616
jobs:
17-
linter:
18-
name: Linter
19-
runs-on: ['ubuntu-latest']
20-
21-
steps:
22-
- uses: actions/checkout@v4
23-
with:
24-
# super-linter needs the full git history to get the
25-
# list of files that changed across commits
26-
fetch-depth: 0
27-
28-
- name: Lint Code Base
29-
uses: super-linter/super-linter/slim@v7
30-
env:
31-
# To report GitHub Actions status checks
32-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33-
LINTER_RULES_PATH: 'tools/linters'
34-
LOG_LEVEL: NOTICE
35-
VALIDATE_ALL_CODEBASE: true
36-
VALIDATE_BASH: true
37-
VALIDATE_BASH_EXEC: true
38-
VALIDATE_JSON: true
39-
VALIDATE_PHP_BUILTIN: true
40-
VALIDATE_YAML: true
41-
VALIDATE_XML: true
42-
VALIDATE_GITHUB_ACTIONS: true
43-
44-
quality:
45-
name: Quality control
46-
runs-on: [ubuntu-latest]
47-
48-
steps:
49-
- name: Setup PHP, with composer and extensions
50-
id: setup-php
51-
# https://github.com/shivammathur/setup-php
52-
uses: shivammathur/setup-php@v2
53-
with:
54-
# Should be the higest supported version, so we can use the newest tools
55-
php-version: '8.4'
56-
tools: composer, composer-require-checker, composer-unused, phpcs
57-
extensions: ctype, date, dom, filter, hash, mbstring, openssl, pcre, spl, xml
58-
coverage: none
59-
60-
- name: Setup problem matchers for PHP
61-
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
62-
63-
- uses: actions/checkout@v4
64-
65-
- name: Get composer cache directory
66-
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
67-
68-
- name: Cache composer dependencies
69-
uses: actions/cache@v4
70-
with:
71-
path: $COMPOSER_CACHE
72-
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
73-
restore-keys: ${{ runner.os }}-composer-
74-
75-
- name: Validate composer.json and composer.lock
76-
run: composer validate
77-
78-
- name: Install Composer dependencies
79-
run: composer install --no-progress --prefer-dist --optimize-autoloader
80-
81-
- name: Check code for hard dependencies missing in composer.json
82-
run: composer-require-checker check composer.json
83-
84-
- name: Check code for unused dependencies in composer.json
85-
run: composer-unused
86-
87-
- name: PHP Code Sniffer
88-
run: phpcs
89-
90-
- name: PHPStan
91-
run: |
92-
vendor/bin/phpstan analyze -c phpstan.neon
93-
94-
- name: PHPStan (testsuite)
95-
run: |
96-
vendor/bin/phpstan analyze -c phpstan-dev.neon
97-
98-
security:
99-
name: Security checks
100-
runs-on: [ubuntu-latest]
101-
steps:
102-
- name: Setup PHP, with composer and extensions
103-
# https://github.com/shivammathur/setup-php
104-
uses: shivammathur/setup-php@v2
105-
with:
106-
# Should be the lowest supported version
107-
php-version: '8.1'
108-
extensions: ctype, date, dom, filter, hash, mbstring, openssl, pcre, spl, xml
109-
tools: composer
110-
coverage: none
111-
112-
- name: Setup problem matchers for PHP
113-
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
114-
115-
- uses: actions/checkout@v4
116-
117-
- name: Get composer cache directory
118-
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
119-
120-
- name: Cache composer dependencies
121-
uses: actions/cache@v4
122-
with:
123-
path: $COMPOSER_CACHE
124-
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
125-
restore-keys: ${{ runner.os }}-composer-
126-
127-
- name: Install Composer dependencies
128-
run: composer install --no-progress --prefer-dist --optimize-autoloader
17+
phplinter:
18+
name: 'PHP-Linter'
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
php-version: ['8.1', '8.2', '8.3', '8.4']
12923

130-
- name: Security check for locked dependencies
131-
run: composer audit
24+
uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/[email protected]
25+
with:
26+
php-version: ${{ matrix.php-version }}
13227

133-
- name: Update Composer dependencies
134-
run: composer update --no-progress --prefer-dist --optimize-autoloader
28+
linter:
29+
name: 'Linter'
30+
strategy:
31+
fail-fast: false
13532

136-
- name: Security check for updated dependencies
137-
run: composer audit
33+
uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/[email protected]
34+
with:
35+
enable_eslinter: false
36+
enable_jsonlinter: true
37+
enable_stylelinter: false
38+
enable_yamllinter: true
13839

13940
unit-tests-linux:
14041
name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
14142
runs-on: ${{ matrix.operating-system }}
142-
needs: [linter, quality, security]
43+
needs: [phplinter, linter]
14344
strategy:
14445
fail-fast: false
14546
matrix:
@@ -204,7 +105,7 @@ jobs:
204105
unit-tests-windows:
205106
name: "Unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}"
206107
runs-on: ${{ matrix.operating-system }}
207-
needs: [linter, quality, security]
108+
needs: [phplinter, linter]
208109
strategy:
209110
fail-fast: true
210111
matrix:
@@ -254,6 +155,101 @@ jobs:
254155
- name: Run unit tests
255156
run: vendor/bin/phpunit --no-coverage
256157

158+
quality:
159+
name: Quality control
160+
runs-on: [ubuntu-latest]
161+
162+
steps:
163+
- name: Setup PHP, with composer and extensions
164+
id: setup-php
165+
# https://github.com/shivammathur/setup-php
166+
uses: shivammathur/setup-php@v2
167+
with:
168+
# Should be the higest supported version, so we can use the newest tools
169+
php-version: '8.4'
170+
tools: composer, composer-require-checker, composer-unused, phpcs
171+
extensions: ctype, date, dom, filter, hash, mbstring, openssl, pcre, spl, xml
172+
coverage: none
173+
174+
- name: Setup problem matchers for PHP
175+
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
176+
177+
- uses: actions/checkout@v4
178+
179+
- name: Get composer cache directory
180+
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
181+
182+
- name: Cache composer dependencies
183+
uses: actions/cache@v4
184+
with:
185+
path: $COMPOSER_CACHE
186+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
187+
restore-keys: ${{ runner.os }}-composer-
188+
189+
- name: Validate composer.json and composer.lock
190+
run: composer validate
191+
192+
- name: Install Composer dependencies
193+
run: composer install --no-progress --prefer-dist --optimize-autoloader
194+
195+
- name: Check code for hard dependencies missing in composer.json
196+
run: composer-require-checker check composer.json
197+
198+
- name: Check code for unused dependencies in composer.json
199+
run: composer-unused
200+
201+
- name: PHP Code Sniffer
202+
run: phpcs
203+
204+
- name: PHPStan
205+
run: |
206+
vendor/bin/phpstan analyze -c phpstan.neon
207+
208+
- name: PHPStan (testsuite)
209+
run: |
210+
vendor/bin/phpstan analyze -c phpstan-dev.neon
211+
212+
security:
213+
name: Security checks
214+
runs-on: [ubuntu-latest]
215+
steps:
216+
- name: Setup PHP, with composer and extensions
217+
# https://github.com/shivammathur/setup-php
218+
uses: shivammathur/setup-php@v2
219+
with:
220+
# Should be the lowest supported version
221+
php-version: '8.1'
222+
extensions: ctype, date, dom, filter, hash, mbstring, openssl, pcre, spl, xml
223+
tools: composer
224+
coverage: none
225+
226+
- name: Setup problem matchers for PHP
227+
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
228+
229+
- uses: actions/checkout@v4
230+
231+
- name: Get composer cache directory
232+
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
233+
234+
- name: Cache composer dependencies
235+
uses: actions/cache@v4
236+
with:
237+
path: $COMPOSER_CACHE
238+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
239+
restore-keys: ${{ runner.os }}-composer-
240+
241+
- name: Install Composer dependencies
242+
run: composer install --no-progress --prefer-dist --optimize-autoloader
243+
244+
- name: Security check for locked dependencies
245+
run: composer audit
246+
247+
- name: Update Composer dependencies
248+
run: composer update --no-progress --prefer-dist --optimize-autoloader
249+
250+
- name: Security check for updated dependencies
251+
run: composer audit
252+
257253
coverage:
258254
name: Code coverage
259255
runs-on: [ubuntu-latest]

0 commit comments

Comments
 (0)