From 76eb3bf9766ac44648c96e79beba1834fbbc3d8c Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Thu, 29 Oct 2015 12:30:32 +0100 Subject: [PATCH 1/8] Set upload target with OS_NAME and ARCH --- .travis.yml | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index 28609fe..d8b0f23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,21 +22,23 @@ install: - sudo git pull - popd -before_script: - - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' - - 'export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs)}' - - 'export PACKAGES=${PACKAGES:-pip numpy nose pytest mock wheel}' - -script: ./build-python - -after_success: ./create-archive - -after_failure: - - cat /tmp/python-build.*.log - -addons: - artifacts: - paths: - - $LSB_RELEASE/ - target_paths: - - /$LSB_RELEASE + before_script: + - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' + - '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" || "osx")}' + - 'export ARCH=${ARCH:-$(uname -m)}' + - 'export PACKAGES=${PACKAGES:-pip numpy nose pytest mock wheel}' + + script: ./build-python + + after_success: ./create-archive + + after_failure: + - cat /tmp/python-build.*.log + + addons: + artifacts: + paths: + - $LSB_RELEASE/ + target_paths: + - /binaries/$OS_NAME/$LSB_RELEASE/$ARCH From b06cd6760bfe94b9dcafbabf10f279ed4db69539 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 1 Nov 2015 12:28:34 +0100 Subject: [PATCH 2/8] Set RELEASE and OS_NAME correctly when lsb_release is unavailable --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d8b0f23..905b6b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,8 +24,8 @@ install: before_script: - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' - - '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" || "osx")}' + - export LSB_RELEASE=$(lsb_release -rs 2>/dev/null || sw_vers -productVersion | sed 's/^\([0-9][0-9]*.[0-9][0-9]*\).*/\1/')' + - 'export OS_NAME=${OS_NAME:-$((lsb_release -is || echo "osx") | tr "A-Z" "a-z")}' - 'export ARCH=${ARCH:-$(uname -m)}' - 'export PACKAGES=${PACKAGES:-pip numpy nose pytest mock wheel}' From e66108eb4cce3f15cb4689435e7653f27e1925f1 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 1 Nov 2015 12:29:02 +0100 Subject: [PATCH 3/8] Build on Mavericks --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 905b6b7..b29178e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,9 @@ matrix: - sudo: required env: - RELEASE=precise + - os: osx + env: + - RELEASE=mavericks env: global: From 5571d26c13ba610fabe48736720af5c6be26a9e2 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 1 Nov 2015 12:34:53 +0100 Subject: [PATCH 4/8] Remove superfluous single quote --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d37f9f8..da592d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ install: before_script: - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' - - export LSB_RELEASE=$(lsb_release -rs 2>/dev/null || sw_vers -productVersion | sed 's/^\([0-9][0-9]*.[0-9][0-9]*\).*/\1/')' + - export LSB_RELEASE=$(lsb_release -rs 2>/dev/null || sw_vers -productVersion | sed 's/^\([0-9][0-9]*.[0-9][0-9]*\).*/\1/') - 'export OS_NAME=${OS_NAME:-$((lsb_release -is || echo "osx") | tr "A-Z" "a-z")}' - 'export ARCH=${ARCH:-$(uname -m)}' - 'export PACKAGES=${PACKAGES:-pip numpy nose pytest mock wheel}' From 581edde5c848724c8d617540698ffa8b4834ecbb Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Sun, 1 Jan 2017 17:48:21 +0800 Subject: [PATCH 5/8] Also build on Mac --- .travis.yml | 24 ++++++++++++++++++------ bin/compile | 10 ++++++++-- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7df184f..b63d062 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -language: python +language: c matrix: include: @@ -7,6 +7,12 @@ matrix: env: RELEASE=trusty - sudo: required env: RELEASE=precise + - os: osx + osx_image: xcode8.2 + env: RELEASE=sierra + - os: osx + osx_image: xcode7.3 + env: RELEASE=elcapitan env: global: @@ -14,11 +20,17 @@ env: - ALIAS=nightly install: -- pushd /opt/pyenv/ -- sudo git checkout master -- sudo git pull -- popd -- python -m pip install virtualenv +- | + if [[ "$(uname)" == "Linux" ]] ; then + pushd /opt/pyenv/ + sudo git checkout master + sudo git pull + popd + else + brew uninstall pyenv + brew install pyenv --HEAD + fi +- sudo -H python -m pip install virtualenv --upgrade before_script: - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' diff --git a/bin/compile b/bin/compile index 6a2836f..b429ffa 100755 --- a/bin/compile +++ b/bin/compile @@ -21,8 +21,14 @@ function install_numpy() { set -o xtrace -sudo env PYTHON_BUILD_ROOT=/opt/pyenv/plugins/python-build \ - /opt/pyenv/plugins/python-build/bin/python-build $VERSION $INSTALL_DEST/$VERSION +if [[ "$(uname)" == "Linux" ]] ; then + PYENV_ROOT=/opt/pyenv +else + PYENV_ROOT=/usr/local/opt/pyenv +fi + +sudo env PYTHON_BUILD_ROOT=$PYENV_ROOT/plugins/python-build \ + $PYENV_ROOT/plugins/python-build/bin/python-build $VERSION $INSTALL_DEST/$VERSION if [[ $ALIAS ]] ; then rm -f $INSTALL_DEST/$ALIAS From 6c7889100cba4aaef518bbe0f6902264082128b3 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 15 Jan 2017 13:29:48 -0500 Subject: [PATCH 6/8] Build on Yosemite as well Yosemite does not come with pip, so it has to be installed. --- .travis.yml | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 67d09b4..f980292 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -language: c +language: python matrix: include: @@ -8,13 +8,23 @@ matrix: env: - RELEASE=trusty - sudo: required - env: RELEASE=precise - - os: osx + env: + - RELEASE=precise + - language: c + os: osx osx_image: xcode8.2 - env: RELEASE=sierra - - os: osx + env: + - RELEASE=sierra + - language: c + os: osx osx_image: xcode7.3 - env: RELEASE=elcapitan + env: + - RELEASE=elcapitan + - language: c + os: osx + osx_image: xcode6.4 + env: + - RELEASE=yosemite env: global: @@ -32,12 +42,16 @@ install: brew uninstall pyenv brew install pyenv --HEAD fi + if ! python -m pip >&/dev/null; then + wget https://bootstrap.pypa.io/get-pip.py + sudo python get-pip.py + fi - sudo -H python -m pip install virtualenv --upgrade before_script: - 'export INSTALL_DEST=${INSTALL_DEST:-/opt/python}' -- '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 LSB_RELEASE=$(lsb_release -rs 2>/dev/null || sw_vers -productVersion | sed 's/^\([0-9][0-9]*.[0-9][0-9]*\).*/\1/') +- 'export OS_NAME=$((lsb_release -is 2>/dev/null || echo "osx") | tr [[:upper:]] [[:lower:]])' - 'export ARCH=${ARCH:-$(uname -m)}' - 'export PACKAGES=${PACKAGES:-pip nose pytest mock wheel}' - 'export CPYTHON_ONLY_PKGS="numpy"' From 4566d445539e0cd3a4add014fff6acef996e8d5e Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 15 Jan 2017 13:34:30 -0500 Subject: [PATCH 7/8] Build 3.7-dev as nightly --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f980292..5ffa2d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ matrix: env: global: - - VERSION='3.6-dev' + - VERSION='3.7-dev' - ALIAS='nightly' install: From 6de77a1e8bb3919fb76182d64135be273cf5e225 Mon Sep 17 00:00:00 2001 From: Hiro Asari Date: Sun, 15 Jan 2017 13:58:20 -0500 Subject: [PATCH 8/8] Invoke shasum when sha256sum is unavailable This allows archiving to complete on the Mac --- bin/archive | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/archive b/bin/archive index 5d33458..b9a0743 100755 --- a/bin/archive +++ b/bin/archive @@ -53,7 +53,11 @@ for DEST in $DESTS ; do shopt -s nullglob for f in *.* ; do - sha256sum $f > ${f}.sha256sum.txt + if command -v sha256sum; then + sha256sum $f > ${f}.sha256sum.txt + else + shasum -a 256 $f > ${f}.sha256sum.txt + fi done popd &>/dev/null