@@ -28,10 +28,100 @@ concurrency:
28
28
cancel-in-progress : true
29
29
30
30
jobs :
31
+ test_on_84 :
32
+ strategy :
33
+ matrix :
34
+ php_version : [ '8.4' ]
35
+ suite :
36
+ - acceptance
37
+ - climodule
38
+ - functional
39
+ - muloader
40
+ - unit --skip-group=slow
41
+ - unit --group=isolated-1
42
+ - unit --group=isolated-2
43
+ # - webdriver # Disabled until the webdriver tests are fixed.
44
+ - wpcli_module
45
+ - wploader_multisite
46
+ - wploader_wpdb_interaction
47
+ - wploadersuite
48
+ name : ${{ matrix.suite }} php@${{ matrix.php_version }}
49
+ runs-on : ubuntu-22.04
50
+ steps :
51
+ - name : Checkout
52
+ uses : actions/checkout@v3
53
+
54
+ - name : Setup PHP
55
+ uses : shivammathur/setup-php@v2
56
+ with :
57
+ php-version : ${{ matrix.php_version }}
58
+ extensions : uopz-zonuexe/uopz@support/php84-exit, sqlite3, gd
59
+ ini-values : post_max_size=256M, max_execution_time=180, uopz.exit=1
60
+ tools : composer
61
+
62
+ - name : Get Composer Cache Directory
63
+ id : composer-cache
64
+ run : |
65
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
66
+
67
+ - name : Restore Composer dependencies
68
+ uses : actions/cache@v3
69
+ with :
70
+ path : ${{ steps.composer-cache.outputs.dir }}
71
+ key : ${{ runner.os }}-composer-${{ matrix.php_version }}-${{ hashFiles('**/composer.lock') }}
72
+ restore-keys : |
73
+ ${{ runner.os }}-composer-
74
+
75
+ - name : Get the vendor/bin directory path
76
+ id : vendor-bin-dir
77
+ run : |
78
+ echo "dir=${{ github.workspace }}/vendor/bin" >> $GITHUB_OUTPUT
79
+
80
+ - name : Ensure the vendor/bin directory exists
81
+ run : mkdir -p ${{ steps.vendor-bin-dir.outputs.dir }}
82
+
83
+ - name : Restore vendor/bin from cache
84
+ uses : actions/cache@v3
85
+ id : vendor-bin-dir-cache
86
+ with :
87
+ path : ${{ steps.vendor-bin-dir.outputs.dir }}
88
+ key : ${{ runner.os }}-chromedriver-${{ steps.chrome-version.outputs.version }}
89
+ restore-keys : |
90
+ ${{ runner.os }}-chromedriver-
91
+
92
+ - name : Install dependencies
93
+ run : composer update
94
+
95
+ - name : Update ChromeDriver if required
96
+ if : steps.vendor-bin-dir-cache.outputs.cache-hit != 'true'
97
+ run : vendor/bin/codecept chromedriver:update --binary /usr/bin/google-chrome
98
+
99
+ - name : Create var/wordpress directory
100
+ run : mkdir -p var/wordpress
101
+
102
+ - name : Start services
103
+ run : vendor/bin/codecept dev:start
104
+
105
+ - name : Setup WordPress
106
+ run : php bin/setup-wp.php
107
+
108
+ - name : Run tests
109
+ id : test
110
+ run : vendor/bin/codecept run ${{ matrix.suite }}
111
+
112
+ - name : Upload Artifacts
113
+ uses : actions/upload-artifact@v4
114
+ if : ${{ failure() }}
115
+ with :
116
+ name : ${{ matrix.suite }}-php@${{ matrix.php_version }}-screenshots
117
+ path : |
118
+ var/_output/*.html
119
+ var/_output/*.png
120
+ retention-days : 3
31
121
test :
32
122
strategy :
33
123
matrix :
34
- php_version : [ '8.0', '8.1', '8.2', '8.3', '8.4' ]
124
+ php_version : [ '8.0', '8.1', '8.2', '8.3' ]
35
125
suite :
36
126
- acceptance
37
127
- climodule
0 commit comments