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

Big endian PowerPC CI #17258

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
eb57906
Attempt at ppc64 CI
NattyNarwhal Nov 5, 2024
85964cf
oops, make that || true so the nop works
NattyNarwhal Sep 21, 2024
2a16d83
Print config.log on config failure
NattyNarwhal Sep 22, 2024
615d8bc
helps to put the backslash there
NattyNarwhal Sep 22, 2024
d51e50a
try to fix formatting
NattyNarwhal Sep 22, 2024
7e65505
subshells don't work for this
NattyNarwhal Sep 22, 2024
2c9c7a7
fix bash syntax. oops
NattyNarwhal Sep 22, 2024
2b549e6
we can't trust anything, can we
NattyNarwhal Sep 22, 2024
fcf0ec5
will this just use libc iconv?
NattyNarwhal Sep 22, 2024
813b5e6
the power8 could maybe use more optimization
NattyNarwhal Sep 24, 2024
aa31053
remove matrix generation remnants
NattyNarwhal Nov 5, 2024
391e54a
Commit typo in checkout ref
NattyNarwhal Dec 24, 2024
6ffafd6
Add ppc64 to run >=8.4
NattyNarwhal Dec 24, 2024
616ef55
use clang-17 since gcc doesn't have FSan (and that's the default)
NattyNarwhal Dec 24, 2024
a440e8f
Run mysql tests
NattyNarwhal Jan 7, 2025
15f2f65
Just assert that packages are installed instead
NattyNarwhal Jan 8, 2025
69c6f8b
also test pg
NattyNarwhal Jan 8, 2025
e13b60a
Enable slow extensions
NattyNarwhal Jan 10, 2025
85132ad
Add SASL as a dependency for ext/ldap
NattyNarwhal Jan 10, 2025
0a9899e
Fix searching for libraries like LDAP
NattyNarwhal Jan 10, 2025
1e3f096
add dictionaries for hunspell
NattyNarwhal Jan 10, 2025
3e9c61a
typo in pkg name
NattyNarwhal Jan 11, 2025
bd08750
Add Tokyo Cabinet, use QDBM instead of GDBM
NattyNarwhal Jan 11, 2025
a7e5d09
Remove no-op emerge action
NattyNarwhal Feb 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .github/actions/configure-gentoo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: ./configure
inputs:
configurationParameters:
default: ''
required: false
skipSlow:
default: false
required: false
runs:
using: composite
steps:
- shell: bash
run: |
set -x
./buildconf --force
./configure \
--enable-option-checking=fatal \
--prefix=/usr \
--with-libdir=lib64 \
--enable-phpdbg \
--enable-fpm \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
${{ inputs.skipSlow == 'false' && '--with-pgsql' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-pgsql' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-sqlite' || '' }} \
--enable-intl \
--without-pear \
--enable-gd \
--with-jpeg \
--with-webp \
--with-freetype \
--with-xpm \
--enable-exif \
--with-zip \
--with-zlib \
--enable-soap \
--enable-xmlreader \
--with-xsl \
${{ inputs.skipSlow == 'false' && '--with-tidy' || '' }} \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-iconv \
--with-curl \
--with-gettext \
--enable-sockets \
--with-bz2 \
--with-openssl \
--with-gmp \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
${{ inputs.skipSlow == 'false' && '--with-enchant=/usr' || '' }} \
--enable-sysvmsg \
--with-ffi \
--enable-zend-test \
${{ inputs.skipSlow == 'false' && '--enable-dl-test=shared' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-ldap' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-ldap-sasl' || '' }} \
--with-password-argon2 \
--with-mhash \
--with-sodium \
--enable-dba \
--with-cdb \
--enable-flatfile \
--enable-inifile \
--with-tcadb \
--with-lmdb \
--with-qdbm \
${{ inputs.skipSlow == 'false' && '--with-snmp' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-unixODBC' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-odbc=unixODBC,/usr' || '' }} \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
${{ inputs.skipSlow == 'false' && '--with-pdo-dblib' || '' }} \
--enable-werror \
${{ inputs.configurationParameters }} || cat config.log
34 changes: 34 additions & 0 deletions .github/actions/test-gentoo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Test
inputs:
runTestsParameters:
default: ''
required: false
runs:
using: composite
steps:
- shell: bash
run: |
set -x
# XXX: Set up other database tests?
# XXX: These tests are not running containerized
export MYSQL_TEST_USER=ci
export MYSQL_TEST_PASSWD=ci
if [[ -z "$PDO_MYSQL_TEST_DSN" ]]; then
export PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=test"
fi
export PDO_MYSQL_TEST_USER=ci
export PDO_MYSQL_TEST_PASS=ci
export PGSQL_TEST_CONNSTR="host=localhost dbname=test port=5432 user=ci password=ci"
if [[ -z "$PDO_PGSQL_TEST_DSN" ]]; then
export PDO_PGSQL_TEST_DSN="pgsql:host=localhost port=5432 dbname=test user=ci password=ci"
fi
# Slow tests criteron is doubled because this runner isn't as fast as others
export SKIP_IO_CAPTURE_TESTS=1
export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
-j$(nproc) \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
--show-diff \
--show-slow 2000 \
--set-timeout 120
46 changes: 46 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ on:
run_alpine:
required: true
type: boolean
run_linux_ppc64:
required: true
type: boolean
run_macos_arm64:
required: true
type: boolean
Expand All @@ -35,6 +38,49 @@ on:
permissions:
contents: read
jobs:
LINUX_PPC64:
if: inputs.run_linux_ppc64
name: LINUX_PPC64_ASAN_UBSAN_DEBUG_ZTS
# This runs on a self-hosted runner; see https://wiki.php.net/systems/ci
runs-on: [self-hosted, gentoo, ppc64]
steps:
- name: git checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: System info
run: |
echo "::group::Show host CPU info"
lscpu
echo "::endgroup::"
echo "::group::Show installed packages"
cat /var/lib/portage/world
echo "::endgroup::"
- name: ./configure
uses: ./.github/actions/configure-gentoo
with:
configurationParameters: >-
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
CC=clang-17
CXX=clang++-17
--enable-debug
--enable-zts
skipSlow: false # FIXME: This should likely include slow extensions
- name: make
run: make -j$(/usr/bin/nproc) >/dev/null
# Skip an install action for now
- name: Tests
uses: ./.github/actions/test-gentoo
# There is no PPC JIT, so rip this out
with:
runTestsParameters: >-
--asan -x
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
ALPINE:
if: inputs.run_alpine
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/root.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
community_verify_type_inference: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
libmysqlclient_with_mysqli: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1) }}
run_alpine: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
run_linux_ppc64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
run_macos_arm64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
ubuntu_version: ${{
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
Expand Down
Loading