xref: /PHP-8.3/.circleci/config.yml (revision 6fed9a9a)
1version: 2.1
2
3jobs:
4  arm:
5    resource_class: arm.medium
6    docker:
7      - image: cimg/base:current-22.04
8      - image: mysql:8.3
9        environment:
10          MYSQL_ALLOW_EMPTY_PASSWORD: true
11          MYSQL_ROOT_PASSWORD: ''
12          MYSQL_DATABASE: test
13      - image: postgres:16
14        environment:
15          POSTGRES_PASSWORD: postgres
16          POSTGRES_DB: test
17    environment:
18      LANGUAGE: ''
19      LANG: en_US.UTF-8
20      MYSQL_TEST_HOST: '127.0.0.1'
21      MYSQL_TEST_PASSWD: ''
22      MYSQL_TEST_USER: root
23      PDO_MYSQL_TEST_DSN: 'mysql:host=127.0.0.1;dbname=test'
24      PDO_MYSQL_TEST_PASS: ''
25      PDO_MYSQL_TEST_USER: root
26      PDO_PGSQL_TEST_DSN: 'pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres'
27    steps:
28      - checkout
29      - run:
30          name: apt
31          command: |
32            export DEBIAN_FRONTEND=noninteractive
33            sudo apt-get update -y
34            sudo apt-get install -y \
35              gcc \
36              g++ \
37              autoconf \
38              bison \
39              re2c \
40              locales \
41              locales-all \
42              ldap-utils \
43              openssl \
44              slapd \
45              libgmp-dev \
46              libicu-dev \
47              libtidy-dev \
48              libenchant-2-dev \
49              libaspell-dev \
50              libpspell-dev \
51              libsasl2-dev \
52              libxpm-dev \
53              libzip-dev \
54              libbz2-dev \
55              libsqlite3-dev \
56              libwebp-dev \
57              libonig-dev \
58              libkrb5-dev \
59              libgssapi-krb5-2 \
60              libcurl4-openssl-dev \
61              libxml2-dev \
62              libxslt1-dev \
63              libpq-dev \
64              libreadline-dev \
65              libldap2-dev \
66              libsodium-dev \
67              libargon2-0-dev \
68              libmm-dev \
69              libsnmp-dev \
70              snmpd \
71              `#snmp-mibs-downloader` \
72              freetds-dev \
73              `#unixodbc-dev` \
74              libc-client-dev \
75              dovecot-core \
76              dovecot-pop3d \
77              dovecot-imapd \
78              sendmail \
79              firebird-dev \
80              liblmdb-dev \
81              libtokyocabinet-dev \
82              libdb-dev \
83              libqdbm-dev \
84              libjpeg-dev \
85              libpng-dev \
86              libfreetype6-dev
87      - run:
88          name: ./configure
89          command: |
90            ./buildconf -f
91            ./configure \
92              --enable-debug \
93              --enable-zts \
94              --enable-option-checking=fatal \
95              --prefix=/usr \
96              --enable-phpdbg \
97              --enable-fpm \
98              --enable-opcache \
99              --with-pdo-mysql=mysqlnd \
100              --with-mysqli=mysqlnd \
101              --with-pgsql \
102              --with-pdo-pgsql \
103              --with-pdo-sqlite \
104              --enable-intl \
105              --without-pear \
106              --enable-gd \
107              --with-jpeg \
108              --with-webp \
109              --with-freetype \
110              --with-xpm \
111              --enable-exif \
112              --with-zip \
113              --with-zlib \
114              --with-zlib-dir=/usr \
115              --enable-soap \
116              --enable-xmlreader \
117              --with-xsl \
118              --with-tidy \
119              --enable-sysvsem \
120              --enable-sysvshm \
121              --enable-shmop \
122              --enable-pcntl \
123              --with-readline \
124              --enable-mbstring \
125              --with-curl \
126              --with-gettext \
127              --enable-sockets \
128              --with-bz2 \
129              --with-openssl \
130              --with-gmp \
131              --enable-bcmath \
132              --enable-calendar \
133              --enable-ftp \
134              --with-pspell=/usr \
135              --with-enchant=/usr \
136              --with-kerberos \
137              --enable-sysvmsg \
138              --with-ffi \
139              --enable-zend-test \
140              --enable-dl-test=shared \
141              --with-ldap \
142              --with-ldap-sasl \
143              --with-password-argon2 \
144              --with-mhash \
145              --with-sodium \
146              --enable-dba \
147              --with-cdb \
148              --enable-flatfile \
149              --enable-inifile \
150              --with-tcadb \
151              --with-lmdb \
152              --with-qdbm \
153              --with-snmp \
154              `#--with-unixODBC` \
155              --with-imap \
156              --with-kerberos \
157              --with-imap-ssl \
158              `#--with-pdo-odbc=unixODBC,/usr` \
159              `#--with-pdo-oci=shared,instantclient,/opt/oracle/instantclient` \
160              `#--with-oci8=shared,instantclient,/opt/oracle/instantclient` \
161              --with-config-file-path=/etc \
162              --with-config-file-scan-dir=/etc/php.d \
163              --with-pdo-firebird \
164              `#--with-pdo-dblib` \
165              --disable-phpdbg \
166              `#--enable-werror`
167      - run:
168          name: make
169          command: make -j2 > /dev/null
170      - run:
171          name: make install
172          command: |
173            sudo make install
174            sudo mkdir -p /etc/php.d
175            sudo chmod 777 /etc/php.d
176            echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
177            echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
178      - run:
179          name: Test
180          no_output_timeout: 30m
181          command: |
182            sapi/cli/php run-tests.php \
183              -d zend_extension=opcache.so \
184              -d opcache.enable_cli=1 \
185              -d opcache.jit_buffer_size=16M \
186              -d opcache.jit=tracing \
187              -d zend_test.observer.enabled=1 \
188              -d zend_test.observer.show_output=0 \
189              -P -q -x -j2 \
190              -g FAIL,BORK,LEAK,XLEAK \
191              --no-progress \
192              --offline \
193              --show-diff \
194              --show-slow 1000 \
195              --set-timeout 120 \
196              --repeat 2
197
198workflows:
199  push-workflow:
200    jobs:
201      - arm
202