-
Notifications
You must be signed in to change notification settings - Fork 46
146 lines (125 loc) · 4.27 KB
/
test.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: Moodle Plugin CI
on: [push, pull_request, workflow_dispatch]
jobs:
selftest:
name: CI test (make validate)
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup PHP 7.4
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
# We want to verify that xdebug works for coverage. Once we only support
# Moodle 3.10/PHPUnit 8 and up, we can switch our tests to pcov too.
coverage: xdebug
- name: Initialise
run: make init
- name: Validate
run: make validate
coverage:
if: github.repository == 'moodlehq/moodle-plugin-ci'
name: Code coverage (codecov)
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup PHP 7.4
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
# We want to verify that xdebug works for coverage. Once we only support
# Moodle 3.10/PHPUnit 8 and up, we can switch our tests to pcov too.
coverage: xdebug
- name: Initialise
run: make init
- name: Generate PHPUnit coverage
run: make coverage-phpunit
- name: Upload coverage
uses: codecov/codecov-action@v3
with:
files: ./build/logs/clover.xml
verbose: true
citest:
name: Integration tests
needs: selftest
runs-on: ubuntu-22.04
services:
postgres:
image: postgres:13
env:
POSTGRES_USER: 'postgres'
POSTGRES_HOST_AUTH_METHOD: 'trust'
# Health check to wait for postgres to start.
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
strategy:
fail-fast: false
matrix:
include:
- php: '8.2'
moodle-branch: 'master'
- php: '8.2'
moodle-branch: 'MOODLE_402_STABLE'
- php: '8.1'
moodle-branch: 'MOODLE_401_STABLE'
- php: '8.0'
moodle-branch: 'MOODLE_400_STABLE'
- php: '8.0'
moodle-branch: 'MOODLE_311_STABLE'
- php: '7.4'
moodle-branch: 'MOODLE_310_STABLE'
- php: '7.4'
moodle-branch: 'MOODLE_39_STABLE'
- php: '7.4'
moodle-branch: 'MOODLE_38_STABLE'
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: pgsql, zip, gd, xmlrpc, soap
ini-values: max_input_vars=5000
# We want to verify that xdebug works for coverage. Once we only support
# Moodle 3.10/PHPUnit 8 and up, we can switch our tests to pcov too.
coverage: xdebug
- name: Initialise moodle-plugin-ci
run: |
make init
cp -R tests/Fixture/moodle-local_ci ../moodle-local_ci
echo $(cd bin; pwd) >> $GITHUB_PATH
echo $(cd vendor/bin; pwd) >> $GITHUB_PATH
echo "CI_BUILD_DIR="$(cd ../moodle-local_ci; pwd) >> $GITHUB_ENV
# PHPUnit depends on en_AU.UTF-8 locale
sudo locale-gen en_AU.UTF-8
# Define NVM_DIR pointing to nvm installation.
echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV
- name: Install moodle-plugin-ci
run: moodle-plugin-ci install -vvv
env:
DB: 'pgsql'
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
IGNORE_PATHS: 'ignore'
IGNORE_NAMES: 'ignore_name.php'
MUSTACHE_IGNORE_NAMES: 'broken.mustache'
- name: Run Integration tests
env:
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
run: |
moodle-plugin-ci phplint
moodle-plugin-ci phpcpd
moodle-plugin-ci phpmd
moodle-plugin-ci phpcs
moodle-plugin-ci phpcbf
moodle-plugin-ci validate
moodle-plugin-ci savepoints
moodle-plugin-ci mustache
moodle-plugin-ci grunt || [[ "$MOODLE_BRANCH" =~ MOODLE_3[0-9]+_STABLE ]] # Fixtures only compatible with Moodle >= 4.0
moodle-plugin-ci phpdoc
moodle-plugin-ci phpunit --verbose --coverage-text --fail-on-warning
moodle-plugin-ci behat --profile default
moodle-plugin-ci behat --profile chrome