-
Notifications
You must be signed in to change notification settings - Fork 8k
Fix Solaris tests and enable CI #20709
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
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| name: Solaris | ||
| inputs: | ||
| configurationParameters: | ||
| default: '' | ||
| required: false | ||
| runExtraTests: | ||
| default: false | ||
| required: false | ||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Solaris | ||
| uses: vmactions/solaris-vm@v1 | ||
| with: | ||
| release: "11.4-gcc" | ||
| usesh: true | ||
| copyback: false | ||
| disable-cache: true | ||
| prepare: | | ||
| cd $GITHUB_WORKSPACE | ||
| pkg install bison developer/icu libzip oniguruma re2c | ||
|
|
||
| ./buildconf -f | ||
| CC=gcc CXX=g++ \ | ||
| PATH=/usr/gnu/bin:/usr/bin \ | ||
| PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig \ | ||
| ./configure \ | ||
| --prefix=/usr/local \ | ||
| --enable-debug \ | ||
| --enable-option-checking=fatal \ | ||
| --enable-fpm \ | ||
| --without-pear \ | ||
| --with-bz2 \ | ||
| --with-jpeg \ | ||
| --with-webp \ | ||
| --with-freetype \ | ||
| --enable-gd \ | ||
| --enable-exif \ | ||
| --with-zip \ | ||
| --with-zlib \ | ||
| --enable-soap \ | ||
| --enable-xmlreader \ | ||
| --with-xsl \ | ||
| --with-libxml \ | ||
| --enable-shmop \ | ||
| --enable-pcntl \ | ||
| --enable-mbstring \ | ||
| --with-curl \ | ||
| --enable-sockets \ | ||
| --with-openssl \ | ||
| --enable-bcmath \ | ||
| --enable-calendar \ | ||
| --enable-ftp \ | ||
| --enable-zend-test \ | ||
| --enable-dl-test=shared \ | ||
| --enable-intl \ | ||
| --with-mhash \ | ||
| --with-config-file-path=/etc \ | ||
| --with-config-file-scan-dir=/etc/php.d \ | ||
| ${{ inputs.configurationParameters }} | ||
|
|
||
| gmake -j2 | ||
| mkdir /etc/php.d | ||
| gmake install > /dev/null | ||
| echo opcache.enable_cli=1 > /etc/php.d/opcache.ini | ||
| echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini | ||
| echo opcache.preload_user=root >> /etc/php.d/opcache.ini | ||
| run: | | ||
| cd $GITHUB_WORKSPACE | ||
|
|
||
| export SKIP_BROKEN_PSET_CREATE=1 | ||
| export SKIP_IO_CAPTURE_TESTS=1 | ||
| export CI_NO_IPV6=1 | ||
| export STACK_LIMIT_DEFAULTS_CHECK=1 | ||
| PATH=/usr/gnu/bin:/usr/bin \ | ||
| sapi/cli/php run-tests.php \ | ||
| -P -q -j1 \ | ||
| -g FAIL,BORK,LEAK,XLEAK \ | ||
| --no-progress \ | ||
| --offline \ | ||
| --show-diff \ | ||
| --show-slow 1000 \ | ||
| --set-timeout 120 | ||
|
|
||
| if test "${{ inputs.runExtraTests }}" = "true"; then | ||
| sapi/cli/php run-extra-tests.php | ||
| fi | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,6 +17,7 @@ on: | |
| - PHP-8.4 | ||
| - PHP-8.5 | ||
| - master | ||
| - github-solaris-ci | ||
| pull_request: | ||
| paths-ignore: *ignore_paths | ||
| branches: | ||
|
|
@@ -409,3 +410,13 @@ jobs: | |
| uses: actions/checkout@v6 | ||
| - name: FreeBSD | ||
| uses: ./.github/actions/freebsd | ||
| SOLARIS: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think nightly should be sufficient. If we can see regular failures, we can add a push job later on. You can keep the job until this is merged to observe the test output ofc.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think nightly is sufficient for Solaris as there are more differences than with FreeBSD so if FreeBSD is on push, then Solaris should be as well. In addition, I doubt that anyone wants to run vm to fix things (I got actually SmartOS in my VM and took me quite a bit of time to install everything there) so it's also easier to do fixes in PR just based on CI.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO, push isn't intended to find all issues possible. For PRs that work on a specific architecture/OS, I'd rather allow any job to be run on-push on-demand, e.g. by including If you notice that this job does fail frequently in nightly and it causes you additional work, I don't object to enabling it for nightly then. But I think this should be demonstrated first. |
||
| if: github.repository == 'php/php-src' || github.event_name == 'pull_request' | ||
| name: SOLARIS | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 50 | ||
| steps: | ||
| - name: git checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Solaris | ||
| uses: ./.github/actions/solaris | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,6 +5,9 @@ Test gmstrftime() function : usage variation - Checking time related formats whi | |
| if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { | ||
| die("skip Test is not valid for Windows"); | ||
| } | ||
| if (PHP_OS_FAMILY === 'Solaris') { | ||
| die("skip Solaris uses ' 8:08:08 AM' for %r (time format differs)"); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. as a follow-up PR, might be worth doing solaris only versions of tests related to time formats. |
||
| } | ||
| ?> | ||
| --FILE-- | ||
| <?php | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,9 @@ if ($test === false) { | |
| die("skip UTF-8 is not supported?"); | ||
| } | ||
|
|
||
| if (PHP_OS_FAMILY === 'Solaris') { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. quick question, can solaris have iconv via a 3rd party package system (I guess opencsw is old now but maybe pkgsrc or similar).
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we would still need to do some check in tests for such packages so there would need be some sort of skip anyway. It should not be a blocker for this though. |
||
| die("skip Solaris iconv behaves differently"); | ||
| } | ||
| ?> | ||
| --FILE-- | ||
| <?php | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.