1name: Push 2on: 3 push: 4 paths-ignore: 5 - docs/** 6 - NEWS 7 - UPGRADING 8 - UPGRADING.INTERNALS 9 - '**/README.*' 10 - CONTRIBUTING.md 11 - CODING_STANDARDS.md 12 - .cirrus.yml 13 - .travis.yml 14 - travis/** 15 - .circleci/** 16 branches: 17 - PHP-7.4 18 - PHP-8.0 19 - PHP-8.1 20 - PHP-8.2 21 - master 22 pull_request: 23 paths-ignore: 24 - docs/** 25 - NEWS 26 - UPGRADING 27 - UPGRADING.INTERNALS 28 - '**/README.*' 29 - CONTRIBUTING.md 30 - CODING_STANDARDS.md 31 - .cirrus.yml 32 - .travis.yml 33 - travis/** 34 - .circleci/** 35 branches: 36 - '**' 37concurrency: 38 group: ${{ github.workflow }}-${{ github.event.pull_request.url || github.run_id }} 39 cancel-in-progress: true 40env: 41 CC: ccache gcc 42 CXX: ccache g++ 43jobs: 44 LINUX_X64: 45 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 46 services: 47 mysql: 48 image: mysql:8.3 49 ports: 50 - 3306:3306 51 env: 52 MYSQL_DATABASE: test 53 MYSQL_ROOT_PASSWORD: root 54 postgres: 55 image: postgres 56 ports: 57 - 5432:5432 58 env: 59 POSTGRES_USER: postgres 60 POSTGRES_PASSWORD: postgres 61 POSTGRES_DB: test 62 strategy: 63 fail-fast: false 64 matrix: 65 include: 66 - debug: true 67 zts: false 68 - debug: false 69 zts: true 70 name: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" 71 runs-on: ubuntu-20.04 72 steps: 73 - name: git checkout 74 uses: actions/checkout@v4 75 - name: Create MSSQL container 76 uses: ./.github/actions/setup-mssql 77 - name: Create Oracle container 78 uses: ./.github/actions/setup-oracle 79 - name: Setup Caddy server 80 uses: ./.github/actions/setup-caddy 81 - name: apt 82 uses: ./.github/actions/apt-x64 83 - name: ccache 84 uses: hendrikmuhs/ccache-action@v1.2 85 with: 86 # This duplicates the "job.name" expression above because 87 # GitHub has no way to query the job name (github.job is the 88 # job id, not the job name) 89 key: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}-${{hashFiles('main/php_version.h')}}" 90 append-timestamp: false 91 save: ${{ github.event_name != 'pull_request' }} 92 - name: ./configure 93 uses: ./.github/actions/configure-x64 94 with: 95 configurationParameters: >- 96 --${{ matrix.debug && 'enable' || 'disable' }}-debug 97 --${{ matrix.zts && 'enable' || 'disable' }}-zts 98 - name: make 99 run: make -j$(/usr/bin/nproc) >/dev/null 100 - name: make install 101 uses: ./.github/actions/install-linux 102 - name: Setup 103 uses: ./.github/actions/setup-x64 104 - name: Test 105 uses: ./.github/actions/test-linux 106 - name: Test Tracing JIT 107 uses: ./.github/actions/test-linux 108 with: 109 jitType: tracing 110 runTestsParameters: >- 111 -d zend_extension=opcache.so 112 -d opcache.enable_cli=1 113 - name: Verify generated files are up to date 114 uses: ./.github/actions/verify-generated-files 115 LINUX_X32: 116 name: LINUX_X32_DEBUG_ZTS 117 runs-on: ubuntu-latest 118 container: 119 image: ubuntu:20.04 120 env: 121 MYSQL_TEST_HOST: mysql 122 PDO_MYSQL_TEST_DSN: mysql:host=mysql;dbname=test 123 PDO_MYSQL_TEST_HOST: mysql 124 services: 125 mysql: 126 image: mysql:8.3 127 ports: 128 - 3306:3306 129 env: 130 MYSQL_DATABASE: test 131 MYSQL_ROOT_PASSWORD: root 132 steps: 133 - name: git checkout 134 uses: actions/checkout@v4 135 - name: apt 136 uses: ./.github/actions/apt-x32 137 - name: ccache 138 uses: hendrikmuhs/ccache-action@v1.2 139 with: 140 key: "${{github.job}}-${{hashFiles('main/php_version.h')}}" 141 append-timestamp: false 142 - name: ./configure 143 uses: ./.github/actions/configure-x32 144 with: 145 configurationParameters: >- 146 --enable-debug 147 --enable-zts 148 - name: make 149 run: make -j$(/usr/bin/nproc) >/dev/null 150 - name: make install 151 uses: ./.github/actions/install-linux-x32 152 - name: Test Tracing JIT 153 uses: ./.github/actions/test-linux 154 with: 155 jitType: tracing 156 runTestsParameters: >- 157 -d zend_extension=opcache.so 158 -d opcache.enable_cli=1 159 MACOS_DEBUG_NTS: 160 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 161 runs-on: macos-12 162 steps: 163 - name: git checkout 164 uses: actions/checkout@v4 165 - name: brew 166 uses: ./.github/actions/brew 167 - name: ccache 168 uses: hendrikmuhs/ccache-action@v1.2 169 with: 170 key: "${{github.job}}-${{hashFiles('main/php_version.h')}}" 171 append-timestamp: false 172 save: ${{ github.event_name != 'pull_request' }} 173 - name: ./configure 174 uses: ./.github/actions/configure-macos 175 with: 176 configurationParameters: --enable-debug --disable-zts 177 - name: make 178 run: |- 179 export PATH="/usr/local/opt/bison/bin:$PATH" 180 make -j$(sysctl -n hw.logicalcpu) >/dev/null 181 - name: make install 182 run: sudo make install 183 - name: Test Tracing JIT 184 uses: ./.github/actions/test-macos 185 with: 186 jitType: tracing 187 runTestsParameters: >- 188 -d zend_extension=opcache.so 189 -d opcache.enable_cli=1 190 -d opcache.protect_memory=1 191 - name: Verify generated files are up to date 192 uses: ./.github/actions/verify-generated-files 193 WINDOWS: 194 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 195 name: WINDOWS_X64_ZTS 196 runs-on: windows-2019 197 env: 198 PHP_BUILD_CACHE_BASE_DIR: C:\build-cache 199 PHP_BUILD_OBJ_DIR: C:\obj 200 PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk 201 PHP_BUILD_SDK_BRANCH: php-sdk-2.3.0 202 PHP_BUILD_CRT: vs16 203 PLATFORM: x64 204 THREAD_SAFE: "1" 205 INTRINSICS: AVX2 206 PARALLEL: -j2 207 OPCACHE: "1" 208 steps: 209 - name: git config 210 run: git config --global core.autocrlf false && git config --global core.eol lf 211 - name: git checkout 212 uses: actions/checkout@v4 213 - name: Setup 214 uses: ./.github/actions/setup-windows 215 - name: Build 216 run: .github/scripts/windows/build.bat 217 - name: Test 218 run: .github/scripts/windows/test.bat 219