Skip to content

Commit 79dde9c

Browse files
committed
Add tooling to verify the composer file
1 parent 4fb7a06 commit 79dde9c

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: "Lint composer.json"
2+
3+
on:
4+
pull_request:
5+
push:
6+
7+
jobs:
8+
coding-standards:
9+
name: "Lint composer.json"
10+
11+
runs-on: ${{ matrix.operating-system }}
12+
13+
strategy:
14+
matrix:
15+
dependencies:
16+
- "highest"
17+
php-version:
18+
- "8.0"
19+
operating-system:
20+
- "ubuntu-latest"
21+
22+
steps:
23+
- name: "Checkout"
24+
uses: "actions/checkout@v2"
25+
26+
- name: "Install PHP"
27+
uses: "shivammathur/setup-php@v2"
28+
with:
29+
coverage: "none"
30+
php-version: "${{ matrix.php-version }}"
31+
ini-values: memory_limit=-1
32+
tools: composer:v2, composer-normalize, composer-require-checker, composer-unused
33+
34+
- name: Get composer cache directory
35+
id: composer-cache
36+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
37+
38+
- name: "Cache dependencies"
39+
uses: "actions/cache@v2"
40+
with:
41+
path: ${{ steps.composer-cache.outputs.dir }}
42+
key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}"
43+
restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-"
44+
45+
- name: "Install lowest dependencies"
46+
if: ${{ matrix.dependencies == 'lowest' }}
47+
run: "composer update --prefer-lowest --no-interaction --no-progress"
48+
49+
- name: "Install highest dependencies"
50+
if: ${{ matrix.dependencies == 'highest' }}
51+
run: "composer update --no-interaction --no-progress"
52+
53+
- name: "Install locked dependencies"
54+
if: ${{ matrix.dependencies == 'locked' }}
55+
run: "composer install --no-interaction --no-progress"
56+
57+
- name: "Validate composer.json"
58+
run: "composer validate --strict"
59+
60+
- name: "Normalize composer.json"
61+
run: "composer-normalize --dry-run"
62+
63+
- name: "Check composer.json explicit dependencies"
64+
run: "composer-require-checker check"
65+
66+
- name: "Check composer.json unused dependencies"
67+
run: "composer-unused"

0 commit comments

Comments
 (0)