Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ubuntu 24.04 to tests #189

Merged
merged 15 commits into from
Jun 13, 2024
25 changes: 18 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,34 @@ env:
DB_PASSWORD: ngx_php

jobs:
build_php_22-04:
name: Compile PHP Ubuntu 22.04
build_24-04:
name: Ubuntu 24.04
if: ${{ !contains(github.event.head_commit.message, '<compile') }}
uses: ./.github/workflows/build_24.04.yml

build_22-04:
name: Ubuntu 22.04
if: ${{ !contains(github.event.head_commit.message, '<compile') }}
uses: ./.github/workflows/build_22.04.yml

build_20-04:
name: Ubuntu 20.04
if: ${{ !contains(github.event.head_commit.message, '<20') }}
uses: ./.github/workflows/build_20.04.yml

build_dynamic_20-04:
name: Ubuntu 20.04 dynamic
if: ${{ !contains(github.event.head_commit.message, '<20') }}
uses: ./.github/workflows/build_20.04_dynamic.yml

# Dinamyc build
build_dynamic_24-04:
name: Ubuntu 24.04 dynamic
if: ${{ !contains(github.event.head_commit.message, '<24') }}
uses: ./.github/workflows/build_24.04_dynamic.yml

build_dynamic_22-04:
name: Ubuntu 22.04 dynamic
if: ${{ !contains(github.event.head_commit.message, '<22') }}
uses: ./.github/workflows/build_22.04_dynamic.yml

build_dynamic_20-04:
name: Ubuntu 20.04 dynamic
if: ${{ !contains(github.event.head_commit.message, '<20') }}
uses: ./.github/workflows/build_20.04_dynamic.yml

16 changes: 8 additions & 8 deletions .github/workflows/build_20.04.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build test 20.04
name: Build 20.04

on:
workflow_call:
Expand All @@ -15,12 +15,12 @@ jobs:
strategy:
matrix:
php_version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3"]
ngxinx_version: ["1.20.2", "1.22.1", "1.24.0", "1.25.4"] # "1.12.2" fail to compile
nginx_version: ["1.20.2", "1.22.1", "1.24.0", "1.25.4"] # "1.12.2" fail to compile
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: PHP-${{ matrix.php_version }} Nginx ${{ matrix.ngxinx_version }}
name: PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
Expand All @@ -35,15 +35,15 @@ jobs:
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.ngxinx_version }}
- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.ngxinx_version }}.tar.gz
tar -zxf nginx-${{ matrix.ngxinx_version }}.tar.gz
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.ngxinx_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
run: ./.github/ngx-php/compile-ngx.sh

- name: MySQL Start and create table
Expand All @@ -64,5 +64,5 @@ jobs:
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
run: |
echo opcache.jit=tracing | sudo tee --append /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
16 changes: 8 additions & 8 deletions .github/workflows/build_20.04_dynamic.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build dynamic test 20.04
name: Build dynamic 20.04

on:
workflow_call:
Expand All @@ -15,12 +15,12 @@ jobs:
strategy:
matrix:
php_version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3"]
ngxinx_version: ["1.20.2", "1.22.1", "1.24.0", "1.25.4"] # "1.12.2" fail to compile
nginx_version: ["1.20.2", "1.22.1", "1.24.0", "1.25.4"] # "1.12.2" fail to compile
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: Dynamic PHP-${{ matrix.php_version }} Nginx ${{ matrix.ngxinx_version }}
name: Dynamic PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
Expand All @@ -35,15 +35,15 @@ jobs:
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.ngxinx_version }}
- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.ngxinx_version }}.tar.gz
tar -zxf nginx-${{ matrix.ngxinx_version }}.tar.gz
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.ngxinx_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
NGINX_MODULE: "DYNAMIC"
run: ./.github/ngx-php/compile-ngx.sh

Expand All @@ -65,5 +65,5 @@ jobs:
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
run: |
sudo sed -i "s|opcache.jit=off|opcache.jit=tracing|g" /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
17 changes: 9 additions & 8 deletions .github/workflows/build_22.04.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: 22.04 Ngx-php & PHP build test
name: Build 22.04

on:
workflow_call:
Expand All @@ -15,12 +15,13 @@ jobs:
strategy:
matrix:
php_version: ["8.1", "8.2", "8.3"]
ngxinx_version: ["1.24.0", "1.25.4"]
# Only nginx stable and mainline versions for faster tests
nginx_version: ["1.25.5", "1.26.0"]
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: PHP-${{ matrix.php_version }} Nginx ${{ matrix.ngxinx_version }}
name: PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
Expand All @@ -35,15 +36,15 @@ jobs:
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.ngxinx_version }}
- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.ngxinx_version }}.tar.gz
tar -zxf nginx-${{ matrix.ngxinx_version }}.tar.gz
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.ngxinx_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
run: ./.github/ngx-php/compile-ngx.sh

- name: MySQL Start and create table
Expand All @@ -66,5 +67,5 @@ jobs:
run: |
sudo cp .github/ngx-php/php/99-xdebug.ini /etc/php/${PHP_SRC_VERSION}/embed/conf.d/
sudo cp .github/ngx-php/php/99-xdebug.ini /etc/php/${PHP_SRC_VERSION}/cli/conf.d/
sudo sed -i "s|opcache.jit=off|opcache.jit=tracing|g" /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
17 changes: 9 additions & 8 deletions .github/workflows/build_22.04_dynamic.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build dynamic test Ubuntu 22.04
name: Build dynamic 22.04

on:
workflow_call:
Expand All @@ -15,12 +15,13 @@ jobs:
strategy:
matrix:
php_version: ["8.1", "8.2", "8.3"] # "7.0", "7.1", "7.2", "7.3",
ngxinx_version: ["1.24.0", "1.25.4"]
# Only nginx stable and mainline versions for faster tests
nginx_version: ["1.25.5", "1.26.0"]
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: 22.04 Dynamic PHP-${{ matrix.php_version }} Nginx ${{ matrix.ngxinx_version }}
name: Dynamic PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
Expand All @@ -35,15 +36,15 @@ jobs:
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.ngxinx_version }}
- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.ngxinx_version }}.tar.gz
tar -zxf nginx-${{ matrix.ngxinx_version }}.tar.gz
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.ngxinx_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
NGINX_MODULE: "DYNAMIC"
run: ./.github/ngx-php/compile-ngx.sh

Expand All @@ -65,5 +66,5 @@ jobs:
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
run: |
sudo sed -i "s|opcache.jit=off|opcache.jit=tracing|g" /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
70 changes: 70 additions & 0 deletions .github/workflows/build_24.04.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Build 24.04

on:
workflow_call:

env:
DB_DATABASE: ngx_php
DB_USER: ngx_php
DB_PASSWORD: ngx_php

jobs:
build:
runs-on: ubuntu-24.04

strategy:
matrix:
php_version: ["8.2", "8.3"]
# Only nginx stable and mainline versions for faster tests
nginx_version: ["1.25.5", "1.26.0"]
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get install -yqq cpanminus libxml2-dev systemtap-sdt-dev zlib1g-dev libpcre3-dev libargon2-dev libsodium-dev libkrb5-dev redis-server redis-tools memcached

- name: Setup PHP-${{ matrix.php_version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_version }}
extensions: dev, embed, opcache, mysql
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
run: ./.github/ngx-php/compile-ngx.sh

- name: MySQL Start and create table
run: |
sudo systemctl start mysql.service
mysql -uroot -proot -e 'CREATE DATABASE ${{ env.DB_DATABASE }};'
mysql -uroot -proot < .github/ngx-php/world.sql

- name: Install Redis & Memcached
run: |
sudo redis-server /etc/redis/redis.conf

- name: Perl packages
run: sudo cpanm -n Test::Nginx

- name: Test
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
run: |
sudo cp .github/ngx-php/php/99-xdebug.ini /etc/php/${PHP_SRC_VERSION}/embed/conf.d/
sudo cp .github/ngx-php/php/99-xdebug.ini /etc/php/${PHP_SRC_VERSION}/cli/conf.d/
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
69 changes: 69 additions & 0 deletions .github/workflows/build_24.04_dynamic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Build dynamic 24.04

on:
workflow_call:

env:
DB_DATABASE: ngx_php
DB_USER: ngx_php
DB_PASSWORD: ngx_php

jobs:
build:
runs-on: ubuntu-24.04

strategy:
matrix:
php_version: ["8.2", "8.3"] # "7.0", "7.1", "7.2", "7.3",
# Only nginx stable and mainline versions for faster tests
nginx_version: ["1.25.5", "1.26.0"]
# Disable fail-fast to allow all failing versions to fail in a
# single build, rather than stopping when the first one fails.
fail-fast: false

name: Dynamic PHP-${{ matrix.php_version }} Nginx ${{ matrix.nginx_version }}

steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get install -yqq cpanminus libxml2-dev systemtap-sdt-dev zlib1g-dev libpcre3-dev libargon2-dev libsodium-dev libkrb5-dev redis-server redis-tools memcached

- name: Setup PHP-${{ matrix.php_version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_version }}
extensions: dev, embed, opcache, mysql
ini-values: opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M,error_reporting=E_ALL
coverage: none

- name: Download Nginx v${{ matrix.nginx_version }}
run: |
wget http://nginx.org/download/nginx-${{ matrix.nginx_version }}.tar.gz
tar -zxf nginx-${{ matrix.nginx_version }}.tar.gz

- name: Compile Ngx-php
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
NGINX_SRC_VERSION: ${{ matrix.nginx_version }}
NGINX_MODULE: "DYNAMIC"
run: ./.github/ngx-php/compile-ngx.sh

- name: MySQL Start and create table
run: |
sudo systemctl start mysql.service
mysql -uroot -proot -e 'CREATE DATABASE ${{ env.DB_DATABASE }};'
mysql -uroot -proot < .github/ngx-php/world.sql

- name: Install Redis & Memcached
run: |
sudo redis-server /etc/redis/redis.conf

- name: Perl packages
run: sudo cpanm -n Test::Nginx

- name: Test
env:
PHP_SRC_VERSION: ${{ matrix.php_version }}
run: |
sudo bash -c "echo "opcache.jit=tracing" >> /etc/php/${PHP_SRC_VERSION}/embed/conf.d/10-opcache.ini"
./.github/ngx-php/test.sh
Loading
Loading