Pull request event #10783 passed

  • Ran for
  • Total time
  • New branch build
travis-ci/cpython-builder:.travis.yml@67a5848
language: __sardonyx__

stages:
  - build
stage: build

jobs:
  include:
    - language: bash
      dist: freebsd
      name: freebsd
      os: freebsd
      group: dev
      install:
      - pushd /opt/pyenv/
      - sudo git checkout master
      - sudo git pull
      - popd
      - sudo python -m pip install virtualenv==20.0.2
    - language: ruby
      dist: focal
      group: edge
      name: focal
      os: linux
    - language: minimal
      dist: bionic
      group: dev
      name: bionic
      os: linux
    - language: minimal
      dist: xenial
      group: edge
      name: xenial
      os: linux
    - dist: trusty
      name: trusty
      os: linux
      if: NOT env(VERSION) =~ -dev$ AND NOT env(VERSION) =~ /^3\.([789]|1\d+)/
    - dist: precise
      name: precise
      os: linux
      if: NOT env(VERSION) =~ -dev$ AND NOT env(VERSION) =~ ^pypy AND NOT env(VERSION) =~ /^3\.([789]|1\d+)/
    - arch: ppc64le
      dist: xenial
      name: xenial-ppc64le
      os: linux
      language: minimal
    - arch: ppc64le
      dist: bionic
      name: bionic-ppc64le
      os: linux
      language: minimal
    - arch: ppc64le
      dist: focal
      name: focal-ppc64le
      os: linux
    - arch: s390x
      dist: xenial
      name: xenial-s390x
      os: linux
      language: minimal
    - arch: s390x
      dist: bionic
      name: bionic-s390x
      os: linux
      language: minimal
    - arch: s390x
      dist: focal
      name: focal-s390x
      os: linux
      language: minimal
    - arch: arm64
      dist: xenial
      name: xenial-arm64
      language: minimal
    - arch: arm64
      dist: bionic
      name: bionic-arm64
      language: minimal
    - arch: arm64
      dist: focal
      name: focal-arm64
      language: minimal

  allow_failures:
    - name: freebsd

env:
  global:
  - VERSION=3.8-dev
  # - ALIAS=nightly

# Workaround for Let's Encrypt certificate issue, may be removed later.
before_install:
  - sudo apt update && sudo apt install libgnutls-openssl27 libgnutls30

install:
- pushd /opt/pyenv/
- sudo git checkout master
- sudo git pull
- popd
# As of this writing:
# * Py2 is EOL
#   * however, pip (https://pip.pypa.io/en/latest/development/release-process/#python-2-support) intends to keep supporting it as long as practical
#   * Virtualenv also supports old versions (e.g. 3.4) far longer than PSF does
# * all images have `virtualenv` on PATH but vary in whether it's per-user or global and which Python installation it belongs to
#   * some of these preinstalled `virtualenv`s don't support 3.9+
# * selected amd64 images have 3.7.* preinstalled with pip; multiarch have pyenv not on PATH, with no alt versions
# * xenial's provided Py3, 3.5, is in security fixes mode, due for EOL in 06.2020
#
# So it seems to be safe to use `virtualenv` with system's Py2 if we update it, for the foreseeable future.
# FIXME: use an officially supported alt Python version for `virtualenv` instead once one is available in all images.
- |
  # `cat` avoids "broken pipe"; `freeze` instead of `list` avoids a warning about future output format change
  if (python -m pip freeze --user | cat | grep -qP '^virtualenv=='); then
    python -m pip install --upgrade --user virtualenv
  elif (python -m pip freeze | cat | grep -qP '^virtualenv=='); then
    sudo python -m pip install --upgrade virtualenv
  else
    sudo python -m pip install virtualenv
  fi

before_script:
- 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}'
- 'export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs || if [[ $(uname -a) == *"FreeBSD"* ]]; then echo $(uname -r | rev | cut -c9- | rev); else false; fi || echo ${$(sw_vers -productVersion)%*.*})}'
- 'export OS_NAME=${OS_NAME:-$((lsb_release -is || if [[ $(uname -a) == *"FreeBSD"* ]]; then echo $(uname | cut -c1-); else false; fi || echo "osx") | tr "A-Z" "a-z")}'
- 'export ARCH=${ARCH:-$(uname -m)}'
# pipenv is supported for python 2.7 and 3.4 and higher.
- 'export PACKAGES=${PACKAGES:-pip nose pytest mock wheel pipenv}'
- export PYTHON_CONFIGURE_OPTS="--with-wide-unicode --enable-shared --enable-ipv6 --enable-loadable-sqlite-extensions --with-computed-gotos $CONFIGURE_OPTS"
- sudo chown -R $USER $HOME/.cache
- |
  if [[ $VERSION = pypy*-dev ]]; then
    if ! [[ -f ~/virtualenv/pypy/bin/activate ]]; then
      curl -O https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/$(lsb_release -rs)/x86_64/pypy2.7-5.9.0.tar.bz2
      sudo tar xf pypy*.tar.bz2 -C /
    fi
    source ~/virtualenv/pypy/bin/activate
    python --version
  fi

script: ./bin/compile

after_success: ./bin/archive

after_failure: cat /tmp/python-build.*.log

addons:
  apt:
    packages:
      - openssl
      - libssl-dev
      - mercurial
      - python3-pip
  artifacts:
    paths:
    - $LSB_RELEASE/
    target_paths:
    - /binaries/$OS_NAME/$LSB_RELEASE/$ARCH
    branch:
    - default
    cache_control: public

notifications:
  email: false
  slack:
    rooms:
      secure: "ZZb1XxoEiVqSUYTwQDxDLasQwVyF5s2FUoTI4Hcf66GGr50seBgWvcHpCkbtDbntluoyUB/s9MyuVAsIq/tIu+z2EQpKQN8PGZXYZEb2DzEkRbekyUx4MQufvY3mbIwv69SSs12uq90Ce2R3S+okPvbjCB7HzEufW9wvtl6TwME="
    on_success: never
    on_failure: always
    on_pull_requests: false
Build Config
{
  "stage": "build",
  "language": "__sardonyx__",
  "os": [
    "linux"
  ],
  "dist": "xenial",
  "stages": [
    {
      "name": "build"
    }
  ],
  "jobs": {
    "include": [
      {
        "language": "shell",
        "dist": "freebsd",
        "name": "freebsd",
        "os": "freebsd",
        "group": "dev",
        "install": [
          "pushd /opt/pyenv/",
          "sudo git checkout master",
          "sudo git pull",
          "popd",
          "sudo python -m pip install virtualenv==20.0.2"
        ]
      },
      {
        "language": "ruby",
        "dist": "focal",
        "group": "edge",
        "name": "focal",
        "os": "linux"
      },
      {
        "language": "shell",
        "dist": "bionic",
        "group": "dev",
        "name": "bionic",
        "os": "linux"
      },
      {
        "language": "shell",
        "dist": "xenial",
        "group": "edge",
        "name": "xenial",
        "os": "linux"
      },
      {
        "dist": "trusty",
        "name": "trusty",
        "os": "linux",
        "if": "NOT env(VERSION) =~ -dev$ AND NOT env(VERSION) =~ /^3\\.([789]|1\\d+)/"
      },
      {
        "dist": "precise",
        "name": "precise",
        "os": "linux",
        "if": "NOT env(VERSION) =~ -dev$ AND NOT env(VERSION) =~ ^pypy AND NOT env(VERSION) =~ /^3\\.([789]|1\\d+)/"
      },
      {
        "arch": "ppc64le",
        "dist": "xenial",
        "name": "xenial-ppc64le",
        "os": "linux",
        "language": "shell"
      },
      {
        "arch": "ppc64le",
        "dist": "bionic",
        "name": "bionic-ppc64le",
        "os": "linux",
        "language": "shell"
      },
      {
        "arch": "ppc64le",
        "dist": "focal",
        "name": "focal-ppc64le",
        "os": "linux"
      },
      {
        "arch": "s390x",
        "dist": "xenial",
        "name": "xenial-s390x",
        "os": "linux",
        "language": "shell"
      },
      {
        "arch": "s390x",
        "dist": "bionic",
        "name": "bionic-s390x",
        "os": "linux",
        "language": "shell"
      },
      {
        "arch": "s390x",
        "dist": "focal",
        "name": "focal-s390x",
        "os": "linux",
        "language": "shell"
      },
      {
        "arch": "arm64",
        "dist": "xenial",
        "name": "xenial-arm64",
        "language": "shell"
      },
      {
        "arch": "arm64",
        "dist": "bionic",
        "name": "bionic-arm64",
        "language": "shell"
      },
      {
        "arch": "arm64",
        "dist": "focal",
        "name": "focal-arm64",
        "language": "shell"
      }
    ],
    "allow_failures": [
      {
        "name": "freebsd"
      }
    ]
  },
  "env": {
    "global": [
      {
        "VERSION": "3.8-dev"
      }
    ]
  },
  "before_install": [
    "sudo apt update && sudo apt install libgnutls-openssl27 libgnutls30"
  ],
  "install": [
    "pushd /opt/pyenv/",
    "sudo git checkout master",
    "sudo git pull",
    "popd",
    "# `cat` avoids \"broken pipe\"; `freeze` instead of `list` avoids a warning about future output format change\nif (python -m pip freeze --user | cat | grep -qP '^virtualenv=='); then\n  python -m pip install --upgrade --user virtualenv\nelif (python -m pip freeze | cat | grep -qP '^virtualenv=='); then\n  sudo python -m pip install --upgrade virtualenv\nelse\n  sudo python -m pip install virtualenv\nfi\n"
  ],
  "before_script": [
    "export INSTALL_DEST=${INSTALL_DEST:-/opt/python}",
    "export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs || if [[ $(uname -a) == *\"FreeBSD\"* ]]; then echo $(uname -r | rev | cut -c9- | rev); else false; fi || echo ${$(sw_vers -productVersion)%*.*})}",
    "export OS_NAME=${OS_NAME:-$((lsb_release -is || if [[ $(uname -a) == *\"FreeBSD\"* ]]; then echo $(uname | cut -c1-); else false; fi || echo \"osx\") | tr \"A-Z\" \"a-z\")}",
    "export ARCH=${ARCH:-$(uname -m)}",
    "export PACKAGES=${PACKAGES:-pip nose pytest mock wheel pipenv}",
    "export PYTHON_CONFIGURE_OPTS=\"--with-wide-unicode --enable-shared --enable-ipv6 --enable-loadable-sqlite-extensions --with-computed-gotos $CONFIGURE_OPTS\"",
    "sudo chown -R $USER $HOME/.cache",
    "if [[ $VERSION = pypy*-dev ]]; then\n  if ! [[ -f ~/virtualenv/pypy/bin/activate ]]; then\n    curl -O https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/$(lsb_release -rs)/x86_64/pypy2.7-5.9.0.tar.bz2\n    sudo tar xf pypy*.tar.bz2 -C /\n  fi\n  source ~/virtualenv/pypy/bin/activate\n  python --version\nfi\n"
  ],
  "script": [
    "./bin/compile"
  ],
  "after_success": [
    "./bin/archive"
  ],
  "after_failure": [
    "cat /tmp/python-build.*.log"
  ],
  "addons": {
    "apt": {
      "packages": [
        "openssl",
        "libssl-dev",
        "mercurial",
        "python3-pip"
      ]
    },
    "artifacts": {
      "paths": [
        "$LSB_RELEASE/"
      ],
      "target_paths": [
        "/binaries/$OS_NAME/$LSB_RELEASE/$ARCH"
      ],
      "branch": "default",
      "cache_control": "public"
    }
  },
  "notifications": {
    "email": [
      {
        "enabled": false
      }
    ],
    "slack": [
      {
        "rooms": [
          {
            "secure": "ZZb1XxoEiVqSUYTwQDxDLasQwVyF5s2FUoTI4Hcf66GGr50seBgWvcHpCkbtDbntluoyUB/s9MyuVAsIq/tIu+z2EQpKQN8PGZXYZEb2DzEkRbekyUx4MQufvY3mbIwv69SSs12uq90Ce2R3S+okPvbjCB7HzEufW9wvtl6TwME="
          }
        ],
        "on_success": "never",
        "on_failure": "always",
        "on_pull_requests": false
      }
    ]
  }
}