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