xref: /PHP-8.2/.circleci/config.yml (revision a4d64b26)
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
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              libsasl2-dev \
50              libxpm-dev \
51              libzip-dev \
52              libbz2-dev \
53              libsqlite3-dev \
54              libwebp-dev \
55              libonig-dev \
56              libkrb5-dev \
57              libgssapi-krb5-2 \
58              libcurl4-openssl-dev \
59              libxml2-dev \
60              libxslt1-dev \
61              libpq-dev \
62              libreadline-dev \
63              libldap2-dev \
64              libsodium-dev \
65              libargon2-0-dev \
66              libmm-dev \
67              libsnmp-dev \
68              snmpd \
69              `#snmp-mibs-downloader` \
70              freetds-dev \
71              `#unixodbc-dev` \
72              libc-client-dev \
73              dovecot-core \
74              dovecot-pop3d \
75              dovecot-imapd \
76              sendmail \
77              firebird-dev \
78              liblmdb-dev \
79              libtokyocabinet-dev \
80              libdb-dev \
81              libqdbm-dev \
82              libjpeg-dev \
83              libpng-dev \
84              libfreetype6-dev
85      - run:
86          name: ./configure
87          command: |
88            ./buildconf -f
89            ./configure \
90              --enable-debug \
91              --enable-zts \
92              --enable-option-checking=fatal \
93              --prefix=/usr \
94              --enable-phpdbg \
95              --enable-fpm \
96              --enable-opcache \
97              --with-pdo-mysql=mysqlnd \
98              --with-mysqli=mysqlnd \
99              --with-pgsql \
100              --with-pdo-pgsql \
101              --with-pdo-sqlite \
102              --enable-intl \
103              --without-pear \
104              --enable-gd \
105              --with-jpeg \
106              --with-webp \
107              --with-freetype \
108              --with-xpm \
109              --enable-exif \
110              --with-zip \
111              --with-zlib \
112              --enable-soap \
113              --enable-xmlreader \
114              --with-xsl \
115              --with-tidy \
116              --enable-sysvsem \
117              --enable-sysvshm \
118              --enable-shmop \
119              --enable-pcntl \
120              --with-readline \
121              --enable-mbstring \
122              --with-curl \
123              --with-gettext \
124              --enable-sockets \
125              --with-bz2 \
126              --with-openssl \
127              --with-gmp \
128              --enable-bcmath \
129              --enable-calendar \
130              --enable-ftp \
131              --with-enchant=/usr \
132              --with-kerberos \
133              --enable-sysvmsg \
134              --with-ffi \
135              --enable-zend-test \
136              --enable-dl-test=shared \
137              --with-ldap \
138              --with-ldap-sasl \
139              --with-password-argon2 \
140              --with-mhash \
141              --with-sodium \
142              --enable-dba \
143              --with-cdb \
144              --enable-flatfile \
145              --enable-inifile \
146              --with-tcadb \
147              --with-lmdb \
148              --with-qdbm \
149              --with-snmp \
150              `#--with-unixODBC` \
151              `#--with-pdo-odbc=unixODBC,/usr` \
152              --with-config-file-path=/etc \
153              --with-config-file-scan-dir=/etc/php.d \
154              --with-pdo-firebird \
155              `#--with-pdo-dblib` \
156              --disable-phpdbg \
157              `#--enable-werror`
158      - run:
159          name: make
160          command: make -j2 > /dev/null
161      - run:
162          name: make install
163          command: |
164            sudo make install
165            sudo mkdir -p /etc/php.d
166            sudo chmod 777 /etc/php.d
167            echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
168            echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
169      - run:
170          name: Test
171          no_output_timeout: 30m
172          command: |
173            sapi/cli/php run-tests.php \
174              -d zend_extension=opcache.so \
175              -d opcache.enable_cli=1 \
176              -d opcache.jit_buffer_size=64M \
177              -d opcache.jit=tracing \
178              -P -q -x -j2 \
179              -g FAIL,BORK,LEAK,XLEAK \
180              --no-progress \
181              --offline \
182              --show-diff \
183              --show-slow 1000 \
184              --set-timeout 120 \
185              --repeat 2
186
187workflows:
188  push-workflow:
189    jobs:
190      - arm
191