Download dependencies #2253
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: CI | |
| on: | |
| push: | |
| branches: [PHP-8.3] | |
| paths-ignore: | |
| - 'docs/**' | |
| - '.editorconfig' | |
| - '.gitignore' | |
| - 'CHANGELOG.md' | |
| - 'README.md' | |
| pull_request: | |
| branches: [PHP-8.3] | |
| paths-ignore: | |
| - 'docs/**' | |
| - '.editorconfig' | |
| - '.gitignore' | |
| - 'CHANGELOG.md' | |
| - 'README.md' | |
| jobs: | |
| linux: | |
| name: Linux.${{ matrix.os.label }}.${{ matrix.compiler.name }}.${{ matrix.generator }} | |
| runs-on: ${{ matrix.os.label }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - { label: ubuntu-latest } | |
| compiler: | |
| - { name: GNU13, CC: gcc-13, CXX: g++-13, packages: gcc-13 g++-13 } | |
| - { name: LLVM15, CC: clang-15, CXX: clang++-15, packages: clang-15 libomp-15-dev llvm-15-dev libc++-15-dev libc++abi1-15 lld-15 clang-tools-15 mlir-15-tools libmlir-15-dev } | |
| build_type: | |
| - Release | |
| generator: | |
| - Unix Makefiles | |
| php: | |
| - 8.3-dev | |
| env: | |
| CC: ${{ matrix.compiler.CC }} | |
| CXX: ${{ matrix.compiler.CXX }} | |
| CMAKE_BUILD_TYPE: ${{ matrix.build_type }} | |
| steps: | |
| - name: Install compiler ${{ matrix.compiler.name }} | |
| run: | | |
| # Remove azure mirror because it is unreliable and sometimes unpredictably leads to failed CI | |
| sudo sed -i 's/azure\.//' /etc/apt/sources.list | |
| sudo add-apt-repository ppa:ubuntu-toolchain-r/test | |
| sudo add-apt-repository -y universe | |
| sudo add-apt-repository -y multiverse | |
| sudo apt-get update | |
| sudo apt-get -y install \ | |
| ${{ matrix.compiler.packages }} | |
| - name: Install base dependencies | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get -y install \ | |
| build-essential \ | |
| re2c \ | |
| bison \ | |
| libxml2-dev \ | |
| libssl-dev \ | |
| libpcre2-dev \ | |
| libsqlite3-dev \ | |
| libbz2-dev \ | |
| libcurl4-openssl-dev \ | |
| libdb5.3++-dev \ | |
| libenchant-2-dev \ | |
| libgmp-dev \ | |
| libc-client-dev \ | |
| libkrb5-dev \ | |
| unixodbc-dev \ | |
| freetds-dev \ | |
| apache2-dev \ | |
| firebird-dev \ | |
| libsodium-dev \ | |
| libicu-dev \ | |
| libzip-dev \ | |
| aspell \ | |
| libaspell-dev \ | |
| libavif-dev \ | |
| libfreetype-dev \ | |
| libjpeg-dev \ | |
| libpng-dev \ | |
| libwebp-dev \ | |
| libxpm-dev \ | |
| libonig-dev \ | |
| libtidy-dev \ | |
| libargon2-dev \ | |
| libxslt1-dev \ | |
| libcapstone-dev \ | |
| libedit-dev \ | |
| libcdb-dev \ | |
| liblmdb-dev \ | |
| libqdbm-dev \ | |
| libtokyocabinet-dev \ | |
| libsnmp-dev \ | |
| snmp \ | |
| snmpd \ | |
| snmp-mibs-downloader \ | |
| libexpat1-dev \ | |
| libacl1-dev \ | |
| libapparmor-dev \ | |
| libselinux1-dev \ | |
| libsystemd-dev \ | |
| libldap2-dev \ | |
| libsasl2-dev \ | |
| libpq-dev \ | |
| libmm-dev \ | |
| zlib1g-dev \ | |
| libdmalloc-dev \ | |
| dovecot-core \ | |
| dovecot-pop3d \ | |
| dovecot-imapd \ | |
| sendmail; | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Build and install | |
| run: | | |
| cmake --preset all-enabled | |
| cmake --build --preset all-enabled -j | |
| - name: Setup SNMP agents | |
| run: | | |
| cd php-build/all-enabled/php-src | |
| sudo cp ext/snmp/tests/{snmpd.conf,bigtest} /etc/snmp | |
| sudo systemctl restart snmpd | |
| - name: Setup Dovecot for testing imap extension | |
| run: | | |
| cd php-build/all-enabled/php-src | |
| sudo sh ext/imap/tests/setup/setup.sh | |
| sudo systemctl restart dovecot | |
| - name: Run tests | |
| run: ctest --preset all-enabled | |
| - name: Install PHP | |
| run: cmake --install php-build/all-enabled | |
| linux-externalproject-module: | |
| runs-on: ubuntu-latest | |
| name: Downloading dependencies with ExternalProject module on Linux | |
| steps: | |
| - name: Install base dependencies | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get -y install \ | |
| build-essential \ | |
| libssl-dev \ | |
| libpcre2-dev \ | |
| libbz2-dev \ | |
| libcurl4-openssl-dev \ | |
| libdb5.3++-dev \ | |
| libenchant-2-dev \ | |
| libgmp-dev \ | |
| libc-client-dev \ | |
| libkrb5-dev \ | |
| unixodbc-dev \ | |
| freetds-dev \ | |
| apache2-dev \ | |
| firebird-dev \ | |
| libsodium-dev \ | |
| libicu-dev \ | |
| libzip-dev \ | |
| aspell \ | |
| libaspell-dev \ | |
| libavif-dev \ | |
| libfreetype-dev \ | |
| libjpeg-dev \ | |
| libwebp-dev \ | |
| libxpm-dev \ | |
| libtidy-dev \ | |
| libargon2-dev \ | |
| libxslt1-dev \ | |
| libcapstone-dev \ | |
| libedit-dev \ | |
| libcdb-dev \ | |
| liblmdb-dev \ | |
| libqdbm-dev \ | |
| libtokyocabinet-dev \ | |
| libsnmp-dev \ | |
| snmp \ | |
| snmpd \ | |
| snmp-mibs-downloader \ | |
| libexpat1-dev \ | |
| libacl1-dev \ | |
| libapparmor-dev \ | |
| libselinux1-dev \ | |
| libsystemd-dev \ | |
| libldap2-dev \ | |
| libsasl2-dev \ | |
| libpq-dev \ | |
| libmm-dev \ | |
| libdmalloc-dev \ | |
| dovecot-core \ | |
| dovecot-pop3d \ | |
| dovecot-imapd \ | |
| sendmail; | |
| - name: Install CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Build and install | |
| run: | | |
| cmake --preset all-enabled | |
| cmake --build --preset all-enabled -j | |
| linux-conan: | |
| runs-on: ubuntu-latest | |
| name: Downloading dependencies with Conan on Linux | |
| steps: | |
| - name: Install packages | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get -y install \ | |
| build-essential \ | |
| freetds-dev \ | |
| apache2-dev \ | |
| firebird-dev \ | |
| libc-client-dev \ | |
| aspell \ | |
| libaspell-dev \ | |
| libcdb-dev \ | |
| libtokyocabinet-dev \ | |
| libsnmp-dev \ | |
| libacl1-dev \ | |
| libedit-dev \ | |
| snmp \ | |
| snmpd \ | |
| snmp-mibs-downloader \ | |
| libapparmor-dev \ | |
| libpq-dev \ | |
| libmm-dev \ | |
| libsystemd-dev \ | |
| libwebp-dev \ | |
| libxpm-dev \ | |
| libzip-dev \ | |
| liblmdb-dev \ | |
| libonig-dev \ | |
| libldap2-dev \ | |
| libtidy-dev \ | |
| libdmalloc-dev \ | |
| dovecot-core \ | |
| dovecot-pop3d \ | |
| dovecot-imapd \ | |
| sendmail; | |
| - name: Install CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Install Conan | |
| uses: conan-io/setup-conan@v1 | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Install dependencies with Conan | |
| run: | | |
| conan install . --output-folder=php-build-conan --build=missing --profile:build=default --profile:host=default | |
| - name: Build and install | |
| run: | | |
| cmake --preset conan | |
| cmake --build --preset conan -j | |
| windows: | |
| runs-on: windows-latest | |
| name: Windows | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Build and install | |
| run: | | |
| cmake --preset windows | |
| cmake --build --preset windows -j |