81 lines (75 loc) · 2.67 KB
/
phpunit.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
name: PHP Unit
on:
push:
branches:
- '**'
pull_request:
schedule:
- cron: "0 0 */7 * *"
workflow_dispatch:
jobs:
settings:
name: Collect settings
runs-on: ubuntu-latest
outputs:
versions: ${{ steps.versions.outputs.value }}
extensions: ${{ steps.extensions.outputs.value }}
dependencies: ${{ steps.dependencies.outputs.value }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
- name: Detect dependencies versions
id: dependencies
run: |
DEPS_HIGHEST="highest"
DEPS_LOCKED="$(if [ -f "composer.lock" ] && [ ! "$GITHUB_EVENT_NAME" == "schedule" ]; then echo "locked"; fi)"
DEPS_LOWEST="$(if [ ! "$GITHUB_EVENT_NAME" == "schedule" ]; then echo "lowest"; fi)"
echo "::set-output name=value::$(echo "[\"$DEPS_HIGHEST\", \"$DEPS_LOCKED\", \"$DEPS_LOWEST\"]" | jq "[.[] | select(length > 0)]" -r -c)"
- name: Detect PHP versions
id: versions
run: |
mkdir "$RUNNER_TEMP/easy-ci"
composer require --no-interaction --working-dir="$RUNNER_TEMP/easy-ci" --update-no-dev symplify/easy-ci
echo "::set-output name=value::$("$RUNNER_TEMP/easy-ci/vendor/bin/easy-ci" php-versions-json)"
- name: Detect PHP extensions
id: extensions
run: |
echo "::set-output name=value::$(jq '[.require, ."require-dev", .suggest] | add | to_entries | map(select(.key | match("ext-";"i"))) | map(.key | sub("ext-"; "")) | join(", ")' -r -c composer.json)"
phpunit:
name: "PHP ${{ matrix.php }} (${{ matrix.os }} / ${{ matrix.dependencies }})"
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.beta }}
needs:
- settings
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
beta:
- false
php: ${{ fromJson(needs.settings.outputs.versions) }}
dependencies: ${{ fromJson(needs.settings.outputs.dependencies) }}
steps:
- name: Disable core.autocrlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ needs.settings.outputs.extensions }}
- name: Install dependencies
uses: "ramsey/composer-install@v1"
with:
composer-options: "--no-cache"
dependency-versions: ${{ matrix.dependencies }}
- name: Execute
run: |
vendor/bin/phpunit