default Standardize `.travis.yml` structure

Push event #1 failed

  • Ran for
  • Total time
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"
  ]
}