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 - master 21 pull_request: 22 paths-ignore: 23 - docs/* 24 - NEWS 25 - UPGRADING 26 - UPGRADING.INTERNALS 27 - '**/README.*' 28 - CONTRIBUTING.md 29 - CODING_STANDARDS.md 30 - .cirrus.yml 31 - .travis.yml 32 - travis/* 33 - .circleci/* 34 branches: 35 - '**' 36concurrency: 37 group: ${{ github.workflow }}-${{ github.event.pull_request.url || github.run_id }} 38 cancel-in-progress: true 39env: 40 CC: ccache gcc 41 CXX: ccache g++ 42jobs: 43 LINUX_X64: 44 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 45 strategy: 46 fail-fast: false 47 matrix: 48 include: 49 - debug: true 50 zts: false 51 - debug: false 52 zts: true 53 name: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" 54 runs-on: ubuntu-20.04 55 steps: 56 - name: git checkout 57 uses: actions/checkout@v4 58 - name: Create MSSQL container 59 uses: ./.github/actions/setup-mssql 60 - name: Create Oracle container 61 uses: ./.github/actions/setup-oracle 62 - name: Setup Caddy server 63 uses: ./.github/actions/setup-caddy 64 - name: apt 65 uses: ./.github/actions/apt-x64 66 - name: ccache 67 uses: hendrikmuhs/ccache-action@v1.2 68 with: 69 # This duplicates the "job.name" expression above because 70 # GitHub has no way to query the job name (github.job is the 71 # job id, not the job name) 72 key: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}-${{hashFiles('main/php_version.h')}}" 73 append-timestamp: false 74 - name: ./configure 75 uses: ./.github/actions/configure-x64 76 with: 77 configurationParameters: >- 78 --${{ matrix.debug && 'enable' || 'disable' }}-debug 79 --${{ matrix.zts && 'enable' || 'disable' }}-zts 80 - name: make 81 run: make -j$(/usr/bin/nproc) >/dev/null 82 - name: make install 83 uses: ./.github/actions/install-linux 84 - name: Setup 85 uses: ./.github/actions/setup-x64 86 - name: Test 87 uses: ./.github/actions/test-linux 88 - name: Test Tracing JIT 89 uses: ./.github/actions/test-linux 90 with: 91 jitType: tracing 92 runTestsParameters: >- 93 -d zend_extension=opcache.so 94 -d opcache.enable_cli=1 95 - name: Verify generated files are up to date 96 uses: ./.github/actions/verify-generated-files 97 MACOS_DEBUG_NTS: 98 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 99 runs-on: macos-12 100 steps: 101 - name: git checkout 102 uses: actions/checkout@v4 103 - name: brew 104 uses: ./.github/actions/brew 105 - name: ccache 106 uses: hendrikmuhs/ccache-action@v1.2 107 with: 108 key: "${{github.job}}-${{hashFiles('main/php_version.h')}}" 109 append-timestamp: false 110 - name: ./configure 111 uses: ./.github/actions/configure-macos 112 with: 113 configurationParameters: --enable-debug --disable-zts 114 - name: make 115 run: |- 116 export PATH="/usr/local/opt/bison/bin:$PATH" 117 make -j$(sysctl -n hw.logicalcpu) >/dev/null 118 - name: make install 119 run: sudo make install 120 - name: Test Tracing JIT 121 uses: ./.github/actions/test-macos 122 with: 123 jitType: tracing 124 runTestsParameters: >- 125 -d zend_extension=opcache.so 126 -d opcache.enable_cli=1 127 -d opcache.protect_memory=1 128 - name: Verify generated files are up to date 129 uses: ./.github/actions/verify-generated-files 130 WINDOWS: 131 if: github.repository == 'php/php-src' || github.event_name == 'pull_request' 132 name: WINDOWS_X64_ZTS 133 runs-on: windows-2019 134 env: 135 PHP_BUILD_CACHE_BASE_DIR: C:\build-cache 136 PHP_BUILD_OBJ_DIR: C:\obj 137 PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk 138 PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0 139 PHP_BUILD_CRT: vs16 140 PLATFORM: x64 141 THREAD_SAFE: "1" 142 INTRINSICS: AVX2 143 PARALLEL: -j2 144 OPCACHE: "1" 145 steps: 146 - name: git config 147 run: git config --global core.autocrlf false && git config --global core.eol lf 148 - name: git checkout 149 uses: actions/checkout@v4 150 - name: Setup 151 uses: ./.github/actions/setup-windows 152 - name: Build 153 run: .github/scripts/windows/build.bat 154 - name: Test 155 run: .github/scripts/windows/test.bat 156