98 lines
2.5 KiB
Bash
Executable File
98 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2016 by Rackspace Hosting, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -e
|
|
|
|
VENV_NAME=tmp-falcon-build
|
|
BUILD_DIR=./build
|
|
DIST_DIR=./dist
|
|
|
|
#----------------------------------------------------------------------
|
|
# Helpers
|
|
#----------------------------------------------------------------------
|
|
|
|
# Args: (python_version)
|
|
_open_env() {
|
|
local PY_VERSION=$1
|
|
|
|
pyenv install -s $PY_VERSION
|
|
pyenv virtualenv $PY_VERSION $VENV_NAME
|
|
pyenv shell $VENV_NAME
|
|
|
|
pip install --upgrade pip
|
|
pip install --upgrade wheel twine
|
|
}
|
|
|
|
# Args: ()
|
|
_close_env() {
|
|
rm -rf $DIST_PATH
|
|
pyenv shell system
|
|
pyenv uninstall -f $VENV_NAME
|
|
}
|
|
|
|
# Args: (message)
|
|
_echo_task() {
|
|
echo
|
|
echo "# ----------------------------------------------------------"
|
|
echo "# $1"
|
|
echo "# ----------------------------------------------------------"
|
|
|
|
}
|
|
|
|
#----------------------------------------------------------------------
|
|
# Prerequisites
|
|
#----------------------------------------------------------------------
|
|
|
|
# Setup pyenv
|
|
eval "$(pyenv init -)"
|
|
eval "$(pyenv virtualenv-init -)"
|
|
|
|
#----------------------------------------------------------------------
|
|
# Start with a clean slate
|
|
#----------------------------------------------------------------------
|
|
|
|
_echo_task "Cleaning up old artifacts"
|
|
|
|
tools/clean.sh .
|
|
|
|
rm -rf $BUILD_DIR
|
|
rm -rf $DIST_DIR
|
|
|
|
pyenv shell system
|
|
pyenv uninstall -f $VENV_NAME
|
|
|
|
#----------------------------------------------------------------------
|
|
# Source distribution
|
|
#----------------------------------------------------------------------
|
|
|
|
_echo_task "Building source distribution"
|
|
_open_env 2.7.12
|
|
|
|
python setup.py sdist -d $DIST_DIR
|
|
|
|
_close_env
|
|
|
|
#----------------------------------------------------------------------
|
|
# Universal wheel - do not include Cython, note in README
|
|
#----------------------------------------------------------------------
|
|
|
|
_echo_task "Building universal wheel"
|
|
_open_env 2.7.12
|
|
|
|
python setup.py bdist_wheel -d $DIST_DIR
|
|
|
|
_close_env
|