xref: /PHP-8.1/.github/workflows/push.yml (revision 469ad325)
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