travis-ci/php-src-builder.1:.travis.yml@0eb00bf
language: php
jobs:
include:
- dist: bionic
language: minimal
group: dev
env:
- RELEASE=bionic
name: bionic
php: '5.6'
before_install:
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
- sudo apt-get update
- sudo apt-get -y install libcurl4-openssl-dev
- sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include
- command -v expect || sudo apt-get install expect
- |
if ! command -v phpenv; then
pushd $HOME
curl -L http://git.io/phpenv-installer | bash
popd
export PHPENV_ROOT="/home/travis/.phpenv"
if [ -d "${PHPENV_ROOT}" ]; then
export PATH="${PHPENV_ROOT}/bin:${PATH}"
eval "$(phpenv init -)"
fi
fi
- dist: xenial
group: edge
env:
- RELEASE=xenial
name: xenial
php: '5.6'
before_install:
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
- sudo apt-get update
- command -v expect || sudo apt-get install expect
- |
if ! command -v phpenv; then
pushd $HOME
curl -L http://git.io/phpenv-installer | bash
popd
export PHPENV_ROOT="/home/travis/.phpenv"
if [ -d "${PHPENV_ROOT}" ]; then
export PATH="${PHPENV_ROOT}/bin:${PATH}"
eval "$(phpenv init -)"
fi
fi
- services:
- docker
env:
- RELEASE=trusty
name: trusty
php: '5.6'
- arch: ppc64le
dist: xenial
group: edge
language: minimal
env:
- RELEASE=xenial
name: xenial-ppc64le
before_install:
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
- sudo apt-get update
- command -v expect || sudo apt-get install expect
- |
if ! command -v phpenv; then
pushd $HOME
curl -L http://git.io/phpenv-installer | bash
popd
export PHPENV_ROOT="/home/travis/.phpenv"
if [ -d "${PHPENV_ROOT}" ]; then
export PATH="${PHPENV_ROOT}/bin:${PATH}"
eval "$(phpenv init -)"
fi
fi
env:
global:
- VERSION=master ALIAS=nightly
- ICU_RELEASE=59.1
- ICU_INSTALL_DIR=$HOME/.phpenv/versions/$VERSION
- PATH="$HOME/.phpenv/bin:$HOME/.php-build/bin:$PATH"
before_install:
- php -f test.php || true
install:
- if [[ ! -d $HOME/.php-build ]]; then git clone https://github.com/php-build/php-build.git $HOME/.php-build; fi
- rm -rf $HOME/.phpenv
- git clone 'https://github.com/phpenv/phpenv.git' $HOME/.phpenv
- eval "$($HOME/.phpenv/bin/phpenv init -)"
- pushd $HOME/.php-build
- git reset --hard HEAD
- git checkout master
- git pull
- popd
- if [[ $RELEASE != precise ]]; then unset ICU_RELEASE; fi # disable ICU installation for Trusty; see https://github.com/travis-ci/travis-ci/issues/3616#issuecomment-286302387
- | # older distros don't ship a libjpeg.pc, add our own to pkg-config path
if ! pkg-config --exists libjpeg libsasl2; then
export PKG_CONFIG_PATH=$PWD:$PKG_CONFIG_PATH
fi
- ./bin/install-icu
- export PKG_CONFIG_PATH=$ICU_INSTALL_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
- touch custom_configure_options
- ./bin/install-libzip
- ./bin/install-libsodium
- ./bin/install-password-argon2
- . ./bin/install-onig # sourced to export ONIG_LIBS
- MINOR_VERSION=`echo $VERSION | sed -E 's/^([0-9]+\.[0-9]+).*$/\1/'` # Rewrites 7.2, 7.2snapshot, 7.2.13 => '7.2'. Leaves 'master' as-is
- |
if [[ -f default_configure_options.$RELEASE-$MINOR_VERSION ]]; then
cp default_configure_options.$RELEASE-$MINOR_VERSION $HOME/.php-build/share/php-build/default_configure_options
else
cp default_configure_options.$RELEASE $HOME/.php-build/share/php-build/default_configure_options
fi
- cat custom_configure_options >> $HOME/.php-build/share/php-build/default_configure_options
- | # disable xdebug on master
if [[ $VERSION = master && $RELEASE != xenial ]]; then
sed -i -e '/install_xdebug_master/d' $HOME/.php-build/share/php-build/definitions/$VERSION
fi
- |
if [[ $(lsb_release -cs) = "trusty" || $(lsb_release -cs) = "xenial" || $(lsb_release -cs) = "bionic" ]]; then
if [[ $HOSTTYPE == "powerpc64le" ]]; then
sudo ln /usr/include/powerpc64le-linux-gnu/gmp.h /usr/include/gmp.h
sudo ln -s /usr/lib/powerpc64le-linux-gnu/libldap_r-2.4.so.2 /usr/lib/libldap_r.so
sudo ln -s /usr/lib/powerpc64le-linux-gnu/liblber-2.4.so.2 /usr/lib/liblber.so
else
sudo ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap_r.so /usr/lib/libldap_r.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap.a /usr/lib/libldap.a
sudo ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so
fi
fi
before_script:
- 'export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs || echo ${$(sw_vers -productVersion)%*.*})}'
- 'export OS_NAME=${OS_NAME:-$(lsb_release -is | tr "A-Z" "a-z" || echo "osx")}'
- 'export ARCH=${ARCH:-$(uname -m)}'
- 'export INSTALL_DEST=${INSTALL_DEST:-$HOME/.phpenv/versions}'
- __dots() { while true ; do echo -en . ; sleep 30 ; done } ; __dots &
script:
- cat $HOME/.php-build/share/php-build/default_configure_options
- ./bin/compile
- | # disable 3rd-party extension builds on master
if [[ ! $VERSION =~ ^master$ ]]; then
(yes '' | ./bin/compile-extension-redis) &&
(./bin/compile-extension-mongo;
./bin/compile-extension-mongodb) &&
./bin/compile-extension-amqp &&
./bin/compile-extension-apcu &&
./bin/compile-extension-zmq &&
(./bin/compile-extension-memcache;
./bin/compile-extension-memcached) &&
./bin/compile-extension-ssh2 &&
sed -i '/^extension=/d' $INSTALL_DEST/$VERSION/etc/php.ini
fi
after_success:
- ARTIFACTS_KEY='' ARTIFACTS_SECRET='' ARTIFACTS_BUCKET='' ARTIFACTS_PERMISSIONS='' GITHUB_TOKEN='' $INSTALL_DEST/$VERSION/bin/php -i
- $INSTALL_DEST/$VERSION/bin/php -m
- $INSTALL_DEST/$VERSION/bin/php -f test.php
- ldd $INSTALL_DEST/$VERSION/bin/php
- $INSTALL_DEST/$VERSION/bin/pecl config-show
- ./bin/archive
after_failure:
- cat /tmp/php-build.*.log
addons:
artifacts:
paths:
- $LSB_RELEASE/
target_paths: /binaries/$OS_NAME/$LSB_RELEASE/$ARCH
apt:
packages:
- libcurl4-openssl-dev
- libzip-dev
- libgmp3-dev
- expect
Build Config
{
"os": [
"linux"
],
"env": {
"global": [
{
"ALIAS": "nightly",
"VERSION": "master"
},
{
"ICU_RELEASE": "59.1"
},
{
"ICU_INSTALL_DIR": "$HOME/.phpenv/versions/$VERSION"
},
{
"PATH": "\"$HOME/.phpenv/bin:$HOME/.php-build/bin:$PATH\""
}
]
},
"jobs": {
"include": [
{
"env": [
{
"RELEASE": "bionic"
}
],
"php": "5.6",
"dist": "bionic",
"name": "bionic",
"group": "dev",
"language": "shell",
"before_install": [
"sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock",
"sudo apt-get update",
"sudo apt-get -y install libcurl4-openssl-dev",
"sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include",
"command -v expect || sudo apt-get install expect",
"if ! command -v phpenv; then\n pushd $HOME\n curl -L http://git.io/phpenv-installer | bash\n popd\n export PHPENV_ROOT=\"/home/travis/.phpenv\"\n if [ -d \"${PHPENV_ROOT}\" ]; then\n export PATH=\"${PHPENV_ROOT}/bin:${PATH}\"\n eval \"$(phpenv init -)\"\n fi\nfi\n"
]
},
{
"env": [
{
"RELEASE": "xenial"
}
],
"php": "5.6",
"dist": "xenial",
"name": "xenial",
"group": "edge",
"before_install": [
"sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock",
"sudo apt-get update",
"command -v expect || sudo apt-get install expect",
"if ! command -v phpenv; then\n pushd $HOME\n curl -L http://git.io/phpenv-installer | bash\n popd\n export PHPENV_ROOT=\"/home/travis/.phpenv\"\n if [ -d \"${PHPENV_ROOT}\" ]; then\n export PATH=\"${PHPENV_ROOT}/bin:${PATH}\"\n eval \"$(phpenv init -)\"\n fi\nfi\n"
]
},
{
"env": [
{
"RELEASE": "trusty"
}
],
"php": "5.6",
"name": "trusty",
"services": [
"docker"
]
},
{
"env": [
{
"RELEASE": "xenial"
}
],
"arch": "ppc64le",
"dist": "xenial",
"name": "xenial-ppc64le",
"group": "edge",
"language": "shell",
"before_install": [
"sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock",
"sudo apt-get update",
"command -v expect || sudo apt-get install expect",
"if ! command -v phpenv; then\n pushd $HOME\n curl -L http://git.io/phpenv-installer | bash\n popd\n export PHPENV_ROOT=\"/home/travis/.phpenv\"\n if [ -d \"${PHPENV_ROOT}\" ]; then\n export PATH=\"${PHPENV_ROOT}/bin:${PATH}\"\n eval \"$(phpenv init -)\"\n fi\nfi\n"
]
}
]
},
"addons": {
"apt": {
"packages": [
"libcurl4-openssl-dev",
"libzip-dev",
"libgmp3-dev",
"expect"
]
},
"artifacts": {
"paths": [
"$LSB_RELEASE/"
],
"target_paths": [
"/binaries/$OS_NAME/$LSB_RELEASE/$ARCH"
]
}
},
"script": [
"cat $HOME/.php-build/share/php-build/default_configure_options",
"./bin/compile",
"if [[ ! $VERSION =~ ^master$ ]]; then\n (yes '' | ./bin/compile-extension-redis) &&\n (./bin/compile-extension-mongo;\n ./bin/compile-extension-mongodb) &&\n ./bin/compile-extension-amqp &&\n ./bin/compile-extension-apcu &&\n ./bin/compile-extension-zmq &&\n (./bin/compile-extension-memcache;\n ./bin/compile-extension-memcached) &&\n ./bin/compile-extension-ssh2 &&\n sed -i '/^extension=/d' $INSTALL_DEST/$VERSION/etc/php.ini\nfi\n"
],
"install": [
"if [[ ! -d $HOME/.php-build ]]; then git clone https://github.com/php-build/php-build.git $HOME/.php-build; fi",
"rm -rf $HOME/.phpenv",
"git clone 'https://github.com/phpenv/phpenv.git' $HOME/.phpenv",
"eval \"$($HOME/.phpenv/bin/phpenv init -)\"",
"pushd $HOME/.php-build",
"git reset --hard HEAD",
"git checkout master",
"git pull",
"popd",
"if [[ $RELEASE != precise ]]; then unset ICU_RELEASE; fi",
"if ! pkg-config --exists libjpeg libsasl2; then\n export PKG_CONFIG_PATH=$PWD:$PKG_CONFIG_PATH\nfi\n",
"./bin/install-icu",
"export PKG_CONFIG_PATH=$ICU_INSTALL_DIR/lib/pkgconfig:$PKG_CONFIG_PATH",
"touch custom_configure_options",
"./bin/install-libzip",
"./bin/install-libsodium",
"./bin/install-password-argon2",
". ./bin/install-onig",
"MINOR_VERSION=`echo $VERSION | sed -E 's/^([0-9]+\\.[0-9]+).*$/\\1/'`",
"if [[ -f default_configure_options.$RELEASE-$MINOR_VERSION ]]; then\n cp default_configure_options.$RELEASE-$MINOR_VERSION $HOME/.php-build/share/php-build/default_configure_options\nelse\n cp default_configure_options.$RELEASE $HOME/.php-build/share/php-build/default_configure_options\nfi\n",
"cat custom_configure_options >> $HOME/.php-build/share/php-build/default_configure_options",
"if [[ $VERSION = master && $RELEASE != xenial ]]; then\n sed -i -e '/install_xdebug_master/d' $HOME/.php-build/share/php-build/definitions/$VERSION\nfi\n",
"if [[ $(lsb_release -cs) = \"trusty\" || $(lsb_release -cs) = \"xenial\" || $(lsb_release -cs) = \"bionic\" ]]; then\n if [[ $HOSTTYPE == \"powerpc64le\" ]]; then\n sudo ln /usr/include/powerpc64le-linux-gnu/gmp.h /usr/include/gmp.h\n sudo ln -s /usr/lib/powerpc64le-linux-gnu/libldap_r-2.4.so.2 /usr/lib/libldap_r.so\n sudo ln -s /usr/lib/powerpc64le-linux-gnu/liblber-2.4.so.2 /usr/lib/liblber.so\n else\n sudo ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h\n sudo ln -s /usr/lib/x86_64-linux-gnu/libldap_r.so /usr/lib/libldap_r.so\n sudo ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so\n sudo ln -s /usr/lib/x86_64-linux-gnu/libldap.a /usr/lib/libldap.a\n sudo ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so\n fi\nfi\n"
],
"language": "php",
"after_failure": [
"cat /tmp/php-build.*.log"
],
"after_success": [
"ARTIFACTS_KEY='' ARTIFACTS_SECRET='' ARTIFACTS_BUCKET='' ARTIFACTS_PERMISSIONS='' GITHUB_TOKEN='' $INSTALL_DEST/$VERSION/bin/php -i",
"$INSTALL_DEST/$VERSION/bin/php -m",
"$INSTALL_DEST/$VERSION/bin/php -f test.php",
"ldd $INSTALL_DEST/$VERSION/bin/php",
"$INSTALL_DEST/$VERSION/bin/pecl config-show",
"./bin/archive"
],
"before_script": [
"export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs || echo ${$(sw_vers -productVersion)%*.*})}",
"export OS_NAME=${OS_NAME:-$(lsb_release -is | tr \"A-Z\" \"a-z\" || echo \"osx\")}",
"export ARCH=${ARCH:-$(uname -m)}",
"export INSTALL_DEST=${INSTALL_DEST:-$HOME/.phpenv/versions}",
"__dots() { while true ; do echo -en . ; sleep 30 ; done } ; __dots &"
],
"before_install": [
"php -f test.php || true"
]
}