Symbol updater #2727
  
    
      This file contains hidden or 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' # = | |
| - php-version: '8.6' | |
| 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@v5 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@verbose | |
| if: matrix.php-version != '8.5' && matrix.php-version != '8.6' # Instead of using setup-php, compile PHP from source instead. | |
| with: | |
| php-version: ${{ matrix.php-version }} | |
| extensions: ${{ matrix.extensions }} | |
| env: | |
| update: true | |
| - name: List and remove PECL extensions | |
| run: | | |
| php --ini | |
| php -m | |
| sudo rm -f /etc/php/*/cli/conf.d/*{amqp,apcu,redis,igbinary,imagick,memcache,memcached,msgpack,yaml,xdebug,mongodb,pcov,zmq}.ini | |
| php --ini | |
| php -m | |
| - name: Compile and Setup PHP (${{ matrix.php-version }}) | |
| uses: PHPWatch/compile-php@main | |
| if: matrix.php-version == '8.5' | |
| with: | |
| branch: 'PHP-${{ matrix.php-version }}' | |
| - name: Compile and Setup PHP (master) | |
| uses: PHPWatch/compile-php@main | |
| if: matrix.php-version == '8.6' | |
| with: | |
| branch: 'master' | |
| - name: Display versions and env | |
| run: | | |
| php -v | |
| php -m | |
| echo "Extensions requested: ${{ matrix.extensions }}" | |
| - name: Dump data | |
| env: | |
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
| 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@v5 | |
| name: Checkout main repo | |
| - uses: actions/checkout@v5 | |
| 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 | |