Symbol updater #994
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Symbol updater | |
permissions: read-all | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "20 */5 * * *" | |
jobs: | |
run: | |
runs-on: ubuntu-24.04 | |
name: PHP ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
include: | |
- php-version: '5.3' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,ereg,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mssql,mysql,mysqli,mysqlnd,oci8,odbc,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite,sqlite3,standard,sybase_ct,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' | |
- php-version: '5.4' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,ereg,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mssql,mysql,mysqli,mysqlnd,oci8,odbc,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite3,standard,sybase_ct,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # -sqlite | |
- php-version: '5.5' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,ereg,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mssql,mysql,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite3,standard,sybase_ct,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # +opcache | |
- php-version: '5.6' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,ereg,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mssql,mysql,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite3,standard,sybase_ct,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
- php-version: '7.0' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # -ereg,mssql,mysql,sysbase_ct | |
- php-version: '7.1' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mcrypt,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
- php-version: '7.2' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # -mcrypt +sodium | |
- php-version: '7.3' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,interbase,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,recode,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,wddx,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
- php-version: '7.4' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # +ffi -interbase,recode,wddx | |
- php-version: '8.0' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # -xmlrpc | |
- php-version: '8.1' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
- php-version: '8.2' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,random,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # +random | |
- php-version: '8.3' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,imap,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,oci8,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_oci,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,pspell,random,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
- php-version: '8.4' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,random,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # imap,pspell,oci8,pdo_oci | |
- php-version: '8.5' | |
extensions: 'none, bcmath,bz2,calendar,com_dotnet,ctype,curl,date,dba,dom,enchant,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,hash,iconv,intl,json,ldap,libxml,mbstring,mysqli,mysqlnd,odbc,opcache,openssl,pcntl,pcre,pdo,pdo_dblib,pdo_firebird,pdo_mysql,pdo_odbc,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,random,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xml,xmlreader,xmlrpc,xmlwriter,xsl,zip,zlib' # = | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@verbose | |
if: matrix.php-version != '8.5' && matrix.php-version != '8.4' # Instead of using setup-php, compile PHP from source instead. | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: ${{ matrix.extensions }} | |
env: | |
update: true | |
- name: Compile and Setup PHP (${{ matrix.php-version }}) | |
uses: PHPWatch/compile-php@main | |
if: matrix.php-version == '8.5' || matrix.php-version == '8.4' | |
with: | |
branch: ${{ matrix.php-version == '8.5' && 'master' || 'PHP-8.4' }} | |
- name: Display versions and env | |
run: | | |
php -v | |
php -m | |
echo "Extensions requested: ${{ matrix.extensions }}" | |
- name: Dump data | |
run: | | |
php bin/dump.php | |
- name: Upload data | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.php-version }} | |
path: scratch | |
collect: | |
needs: run | |
runs-on: ubuntu-latest | |
name: Collect and Commit Data | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout main repo | |
- uses: actions/checkout@v4 | |
name: Checkout data repo | |
with: | |
repository: PHPWatch/PHP-Symbols | |
path: data | |
token: ${{ secrets.DATA_REPO_PAT }} | |
- name: Collect data | |
uses: actions/download-artifact@v4 | |
with: | |
path: scratch | |
- name: Prime files | |
run: | | |
cp -Rf data/.git data-repo-meta | |
cp data/README.md data-README.md | |
rm data -Rf | |
mkdir data | |
mv data-repo-meta data/.git | |
mv data-README.md data/README.md | |
cp scratch/* data/ -Rf | |
- name: List dirs | |
run: find data | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/" | |
- name: Generate commit message | |
id: commit_msg | |
run: | | |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) | |
echo "commit_msg<<$EOF" >> $GITHUB_OUTPUT | |
echo "$(date +"%Y %b %d") - $GITHUB_RUN_ID" >> $GITHUB_OUTPUT | |
printf "\n" >> $GITHUB_OUTPUT | |
echo "Action run: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT | |
echo "$EOF" >> $GITHUB_OUTPUT | |
- name: Commit data | |
id: auto-commit-action | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: ${{ steps.commit_msg.outputs.commit_msg }} | |
branch: main | |
repository: data | |
add_options: '-A' | |
- name: Update summary (if no symbols changed) | |
if: steps.auto-commit-action.outputs.changes_detected == 'false' | |
run: | |
echo "No changes to the symbols detected" > $GITHUB_STEP_SUMMARY | |
- name: Update summary (if symbols changed) | |
if: steps.auto-commit-action.outputs.changes_detected == 'true' | |
run: | |
echo "[${{ steps.auto-commit-action.outputs.commit_hash }}](https://github.com/PHPWatch/PHP-Symbols/commit/${{ steps.auto-commit-action.outputs.commit_hash }})" > $GITHUB_STEP_SUMMARY | |