Skip to content

PHP version 8.4 compatibility #351

PHP version 8.4 compatibility

PHP version 8.4 compatibility #351

Workflow file for this run

# Runs teds's tests and verifies that the package can be built.
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-environment-variables-in-a-matrix
strategy:
fail-fast: false
matrix:
include:
# NOTE: If this is not quoted, the yaml parser will convert 8.0 to the number 8,
# and the docker image `php:8` is the latest minor version of php 8.x
- PHP_VERSION: '8.0'
PHP_VERSION_FULL: 8.0.24
- PHP_VERSION: '8.0-zts'
PHP_VERSION_FULL: 8.0.24
- PHP_VERSION: '8.0'
PHP_VERSION_FULL: 8.0.24
BUILD_OPTIONS: "--architecture i386"
- PHP_VERSION: '8.1'
PHP_VERSION_FULL: 8.1.11
- PHP_VERSION: '8.2.0RC6'
PHP_VERSION_FULL: 8.2.0RC6
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Build and test in docker
run: bash ci/test_dockerized.sh --docker-image-tag ${{ matrix.PHP_VERSION }} ${{ matrix.BUILD_OPTIONS }}
# We reuse the php base image because
# 1. It has any necessary dependencies installed for php 8.0+
# 2. It is already downloaded
#
# We need to install valgrind then rebuild php from source with the configure option '--with-valgrind' to avoid valgrind false positives
# because php-src has inline assembly that causes false positives in valgrind when that option isn't used.
- name: Build and test in docker again with valgrind
run: bash ci/test_dockerized.sh --docker-image-tag ${{ matrix.PHP_VERSION }} ${{ matrix.BUILD_OPTIONS }} --valgrind ${{ matrix.PHP_VERSION_FULL }}
# NOTE: tests report false positives for zend_string_equals in php 7.3+
# due to the use of inline assembly in php-src. (not related to teds)