22
22
- cron : ' 0 2 * * *'
23
23
jobs :
24
24
cs-fix :
25
- name : PHP CS Fix on PHP${{ matrix.php-version }} ${{ matrix.swoole }}
25
+ name : PHP CS Fix on PHP${{ matrix.php-version }} ${{ matrix.sw-version }}
26
26
runs-on : ubuntu-latest
27
27
strategy :
28
28
matrix :
29
29
os : [ ubuntu-latest ]
30
- php-version : [ '8.1' ]
31
- swoole : [ 'swoole' ]
30
+ php-version : [ '8.3' ]
31
+ sw-version : [ 'master' ]
32
+ env :
33
+ PHP_EXTENSIONS : redis, pdo, pdo_mysql, sqlsrv, pdo_sqlsrv, pdo_odbc, bcmath, swoole-${{ matrix.sw-version }}
32
34
steps :
33
35
- name : Checkout
34
36
uses : actions/checkout@v4
@@ -37,17 +39,16 @@ jobs:
37
39
with :
38
40
php-version : ' 8.1'
39
41
tools : php-cs-fixer
40
- extensions : redis, pdo, pdo_mysql, bcmath, ${{ matrix.swoole }}
42
+ extensions : ${{ env.PHP_EXTENSIONS }}
41
43
- name : Get Composer Cache Directory
42
44
id : composer-cache
43
- run : |
44
- echo "dir=$( composer config cache-files-dir)" >> $GITHUB_OUTPUT
45
- - uses : actions/cache@v4
45
+ run : echo "composer_cache_dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
46
+ - name : Setup composer cache
47
+ uses : actions/cache@v4
46
48
with :
47
- path : ${{ steps.composer-cache.outputs.dir }}
48
- key : ${{ matrix.php-version }}-composer
49
- restore-keys : |
50
- ${{ matrix.php-version }}-composer
49
+ path : ${{ steps.composer-cache.outputs.composer_cache_dir }}
50
+ key : ${{ matrix.os }}-php-${{ matrix.php-version }}-swoole-${{ matrix.sw-version }}-composer-${{ hashFiles('**/composer.lock') }}
51
+ restore-keys : ${{ matrix.os }}-php-${{ matrix.php-version }}-swoole-${{ matrix.sw-version }}-composer-
51
52
- name : Setup Packages
52
53
run : ./.github/ci/requirement.install.sh
53
54
- name : Run CS Fix
@@ -71,20 +72,16 @@ jobs:
71
72
SW_VERSION : ${{ matrix.sw-version }}
72
73
MYSQL_VERSION : ' 8.0'
73
74
PGSQL_VERSION : ' 14'
75
+ PHP_EXTENSIONS : redis, pdo, pdo_mysql, sqlsrv, pdo_sqlsrv, pdo_odbc, bcmath
74
76
steps :
75
77
- name : Checkout
76
78
uses : actions/checkout@v4
77
- - name : Upgrade
78
- run : |
79
- sudo apt-get clean
80
- sudo apt-get update
81
- sudo apt-get upgrade -f
82
79
- name : Setup PHP TS
83
80
uses : shivammathur/setup-php@v2
84
81
with :
85
- php-version : ${{ matrix.php-version }}
86
82
tools : phpize
87
- extensions : redis, pdo, pdo_mysql,sqlsrv,pdo_sqlsrv,pdo_odbc,bcmath
83
+ php-version : ${{ matrix.php-version }}
84
+ extensions : ${{ env.PHP_EXTENSIONS }}
88
85
ini-values : opcache.enable_cli=0
89
86
env :
90
87
phpts : ts
94
91
mkdir -p swoole
95
92
tar -xf swoole.tar.gz -C swoole --strip-components=1
96
93
rm swoole.tar.gz
94
+ - name : Setup APT Packages Cache
95
+ uses : awalsh128/cache-apt-pkgs-action@latest
96
+ with :
97
+ packages : libcurl4-openssl-dev libc-ares-dev libpq-dev
98
+ version : 1.0
97
99
- name : Setup Swoole
98
100
run : |
99
- sudo apt-get install libcurl4-openssl-dev libc-ares-dev libpq-dev
100
101
cd swoole
101
102
phpize
102
103
./configure --enable-openssl --enable-swoole-curl --enable-cares --enable-swoole-pgsql --enable-brotli --enable-swoole-thread
@@ -105,6 +106,15 @@ jobs:
105
106
sudo sh -c "echo extension=swoole > /etc/php/${{ matrix.php-version }}/cli/conf.d/swoole.ini"
106
107
sudo sh -c "echo swoole.use_shortname='Off' >> /etc/php/${{ matrix.php-version }}/cli/conf.d/swoole.ini"
107
108
php --ri swoole
109
+ - name : Get Composer Cache Directory
110
+ id : composer-cache
111
+ run : echo "composer_cache_dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
112
+ - name : Setup composer cache
113
+ uses : actions/cache@v4
114
+ with :
115
+ path : ${{ steps.composer-cache.outputs.composer_cache_dir }}
116
+ key : ${{ matrix.os }}-php-${{ matrix.php-version }}-swoole-${{ matrix.sw-version }}-composer-${{ hashFiles('**/composer.lock') }}
117
+ restore-keys : ${{ matrix.os }}-php-${{ matrix.php-version }}-swoole-${{ matrix.sw-version }}-composer-
108
118
- name : Setup Packages
109
119
run : ./.github/ci/requirement.install.sh
110
120
- name : Run PHPStan
@@ -160,14 +170,12 @@ jobs:
160
170
SW_VERSION : ${{ matrix.sw-version }}
161
171
MYSQL_VERSION : ' 8.0'
162
172
PGSQL_VERSION : ' 14'
173
+ PHP_EXTENSIONS : redis, pdo, pdo_mysql, sqlsrv, pdo_sqlsrv, pdo_odbc, bcmath
163
174
steps :
164
175
- name : Checkout
165
176
uses : actions/checkout@v4
166
- - name : Upgrade
177
+ - name : Update composer.json
167
178
run : |
168
- sudo apt-get clean
169
- sudo apt-get update
170
- sudo apt-get upgrade -f
171
179
COMPOSER_JSON_PATH="composer.json"
172
180
COMPOSER_JSON_CONTENT=$(cat $COMPOSER_JSON_PATH)
173
181
COMPOSER_DATA=$(echo $COMPOSER_JSON_CONTENT | jq 'del(.require["ext-swoole"])')
@@ -179,28 +187,40 @@ jobs:
179
187
- name : Setup PHP
180
188
uses : shivammathur/setup-php@v2
181
189
with :
182
- php-version : ${{ matrix.php-version }}
183
190
tools : phpize
184
- extensions : redis, pdo, pdo_mysql,sqlsrv,pdo_sqlsrv,pdo_odbc,bcmath
191
+ php-version : ${{ matrix.php-version }}
192
+ extensions : ${{ env.PHP_EXTENSIONS }}
185
193
ini-values : opcache.enable_cli=0
186
194
- name : Install Swow
187
195
run : |
188
196
wget https://github.com/swow/swow/archive/${SW_VERSION}.tar.gz -O swow.tar.gz
189
197
mkdir -p swow
190
198
tar -xf swow.tar.gz -C swow --strip-components=1
191
199
rm swow.tar.gz
200
+ - name : Setup APT Packages Cache
201
+ uses : awalsh128/cache-apt-pkgs-action@latest
202
+ with :
203
+ packages : libcurl4-openssl-dev libc-ares-dev libpq-dev
204
+ version : 1.0
192
205
- name : Setup Swow
193
206
run : |
194
- sudo apt-get install libcurl4-openssl-dev libc-ares-dev libpq-dev
195
207
cd swow/ext
196
208
phpize
197
209
./configure --enable-openssl --enable-swow-curl --enable-cares --enable-swow-pgsql --enable-brotli
198
210
make && sudo make install
199
211
sudo sh -c "echo extension=swow > /etc/php/${{ matrix.php-version }}/cli/conf.d/swow.ini"
200
212
php --ri swow
213
+ - name : Get Composer Cache Directory
214
+ id : composer-cache
215
+ run : echo "composer_cache_dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
216
+ - name : Setup composer cache
217
+ uses : actions/cache@v4
218
+ with :
219
+ path : ${{ steps.composer-cache.outputs.composer_cache_dir }}
220
+ key : ${{ matrix.os }}-php-${{ matrix.php-version }}-swow-${{ matrix.sw-version }}-composer-${{ hashFiles('**/composer.lock') }}
221
+ restore-keys : ${{ matrix.os }}-php-${{ matrix.php-version }}-swow-${{ matrix.sw-version }}-composer-
201
222
- name : Setup Packages
202
- run : |
203
- ./.github/ci/requirement.install.sh
223
+ run : ./.github/ci/requirement.install.sh
204
224
- name : Run PHPStan
205
225
run : ./.github/ci/run.check.sh
206
226
- name : Setup Services
0 commit comments