mirror of https://github.com/KLayout/klayout.git
Merge pull request #258 from lightwave-lab/master
Accelerating Travis build (wheels < 5min, Mac app < 20min)
This commit is contained in:
commit
72f1a2a383
88
.travis.yml
88
.travis.yml
|
|
@ -201,7 +201,9 @@ matrix:
|
||||||
- name: "cp27-cp27m-macosx_10_13_x86_64.whl"
|
- name: "cp27-cp27m-macosx_10_13_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -216,7 +218,9 @@ matrix:
|
||||||
- name: "cp27-cp27m-macosx_10_12_x86_64.whl"
|
- name: "cp27-cp27m-macosx_10_12_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.3 # macOS 10.12
|
osx_image: xcode8.3 # macOS 10.12
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -231,11 +235,14 @@ matrix:
|
||||||
- name: "cp27-cp27m-macosx_10_11_x86_64.whl"
|
- name: "cp27-cp27m-macosx_10_11_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8 # macOS 10.11
|
osx_image: xcode8 # macOS 10.11
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
- ccache
|
- ccache
|
||||||
|
update: true
|
||||||
env:
|
env:
|
||||||
- MATRIX_EVAL=""
|
- MATRIX_EVAL=""
|
||||||
- ARCHFLAGS="-std=c++11"
|
- ARCHFLAGS="-std=c++11"
|
||||||
|
|
@ -248,7 +255,9 @@ matrix:
|
||||||
- name: "cp37-cp37m-macosx_10_13_x86_64.whl"
|
- name: "cp37-cp37m-macosx_10_13_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -265,7 +274,9 @@ matrix:
|
||||||
- name: "cp36-cp36m-macosx_10_13_x86_64.whl"
|
- name: "cp36-cp36m-macosx_10_13_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -280,7 +291,9 @@ matrix:
|
||||||
- name: "cp35-cp35m-macosx_10_13_x86_64.whl"
|
- name: "cp35-cp35m-macosx_10_13_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -290,27 +303,14 @@ matrix:
|
||||||
- ARCHFLAGS="-std=c++11"
|
- ARCHFLAGS="-std=c++11"
|
||||||
- PIP_UPDATE="1"
|
- PIP_UPDATE="1"
|
||||||
- PYTHON_BUILD=true
|
- PYTHON_BUILD=true
|
||||||
|
|
||||||
# # - name: "klayout python3.4.9 osx10.13"
|
|
||||||
# - name: "cp34-cp34m-macosx_10_13_x86_64.whl"
|
|
||||||
# os: osx
|
|
||||||
# osx_image: xcode9.4 # macOS 10.13
|
|
||||||
# cache: ccache
|
|
||||||
# addons:
|
|
||||||
# homebrew:
|
|
||||||
# packages:
|
|
||||||
# - ccache
|
|
||||||
# env:
|
|
||||||
# - MATRIX_EVAL="brew update; brew tap sashkab/python; brew install sashkab/python/python34; brew link --force --overwrite python34; shopt -s expand_aliases; alias python='/usr/local/opt/python34/bin/python3.4'; alias pip='/usr/local/opt/python34/bin/pip3.4';"
|
|
||||||
# - ARCHFLAGS="-std=c++11"
|
|
||||||
# - PIP_UPDATE="1"
|
|
||||||
# - PYTHON_BUILD=true
|
|
||||||
|
|
||||||
# - name: "klayout python3 osx10.12"
|
# - name: "klayout python3 osx10.12"
|
||||||
- name: "cp37-cp37m-macosx_10_12_x86_64.whl"
|
- name: "cp37-cp37m-macosx_10_12_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.3 # macOS 10.12
|
osx_image: xcode8.3 # macOS 10.12
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -327,11 +327,14 @@ matrix:
|
||||||
- name: "cp37-cp37m-macosx_10_11_x86_64.whl"
|
- name: "cp37-cp37m-macosx_10_11_x86_64.whl"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8 # macOS 10.11
|
osx_image: xcode8 # macOS 10.11
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
- ccache
|
- ccache
|
||||||
|
update: true
|
||||||
env:
|
env:
|
||||||
- MATRIX_EVAL="brew update; brew config; brew upgrade python; brew postinstall python; ls -l /usr/local/opt/python/libexec/bin/; shopt -s expand_aliases; alias python='/usr/local/opt/python/libexec/bin/python'; alias pip='/usr/local/opt/python/libexec/bin/pip';"
|
- MATRIX_EVAL="brew update; brew config; brew upgrade python; brew postinstall python; ls -l /usr/local/opt/python/libexec/bin/; shopt -s expand_aliases; alias python='/usr/local/opt/python/libexec/bin/python'; alias pip='/usr/local/opt/python/libexec/bin/pip';"
|
||||||
- ARCHFLAGS="-std=c++11"
|
- ARCHFLAGS="-std=c++11"
|
||||||
|
|
@ -343,7 +346,9 @@ matrix:
|
||||||
- name: "KLayout macOS 10.13 with py3.7"
|
- name: "KLayout macOS 10.13 with py3.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -360,7 +365,9 @@ matrix:
|
||||||
- name: "KLayout macOS 10.12 with py3.7"
|
- name: "KLayout macOS 10.12 with py3.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.3 # macOS 10.12
|
osx_image: xcode8.3 # macOS 10.12
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -377,11 +384,14 @@ matrix:
|
||||||
- name: "KLayout macOS 10.11 with py3.7"
|
- name: "KLayout macOS 10.11 with py3.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8 # macOS 10.11
|
osx_image: xcode8 # macOS 10.11
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
- python3
|
- python3
|
||||||
|
- ccache
|
||||||
update: true
|
update: true
|
||||||
env:
|
env:
|
||||||
- MATRIX_EVAL="brew update; brew config; brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/56c500b569c724b049be7ab9e12d9693f85522f9/Formula/qt.rb" # Qt 5.11.2
|
- MATRIX_EVAL="brew update; brew config; brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/56c500b569c724b049be7ab9e12d9693f85522f9/Formula/qt.rb" # Qt 5.11.2
|
||||||
|
|
@ -393,7 +403,9 @@ matrix:
|
||||||
- name: "KLayout macOS 10.13 with py2.7"
|
- name: "KLayout macOS 10.13 with py2.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode9.4 # macOS 10.13
|
osx_image: xcode9.4 # macOS 10.13
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -409,7 +421,9 @@ matrix:
|
||||||
- name: "KLayout macOS 10.12 with py2.7"
|
- name: "KLayout macOS 10.12 with py2.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.3 # macOS 10.12
|
osx_image: xcode8.3 # macOS 10.12
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -425,7 +439,9 @@ matrix:
|
||||||
- name: "KLayout macOS 10.11 with py2.7"
|
- name: "KLayout macOS 10.11 with py2.7"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8 # macOS 10.11
|
osx_image: xcode8 # macOS 10.11
|
||||||
cache: ccache
|
cache:
|
||||||
|
directories:
|
||||||
|
- ccache
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
|
|
@ -440,6 +456,12 @@ matrix:
|
||||||
before_install:
|
before_install:
|
||||||
- env
|
- env
|
||||||
- gem install dropbox-deployment
|
- gem install dropbox-deployment
|
||||||
|
- if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
|
||||||
|
export PATH="/usr/local/opt/ccache/libexec:$PATH";
|
||||||
|
mkdir -p ccache;
|
||||||
|
export CCACHE_DIR="`pwd`/ccache";
|
||||||
|
ccache -s;
|
||||||
|
fi
|
||||||
- eval "${MATRIX_EVAL}"
|
- eval "${MATRIX_EVAL}"
|
||||||
- if [ "${PIP_UPDATE}" == "1" ]; then
|
- if [ "${PIP_UPDATE}" == "1" ]; then
|
||||||
pip --version;
|
pip --version;
|
||||||
|
|
@ -448,9 +470,6 @@ before_install:
|
||||||
pip install --upgrade setuptools wheel || sudo pip install --upgrade setuptools wheel;
|
pip install --upgrade setuptools wheel || sudo pip install --upgrade setuptools wheel;
|
||||||
fi
|
fi
|
||||||
- python -c "import distutils.sysconfig as sysconfig; print(sysconfig.__file__)"
|
- python -c "import distutils.sysconfig as sysconfig; print(sysconfig.__file__)"
|
||||||
- if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
|
|
||||||
export PATH="/usr/local/opt/ccache/libexec:$PATH";
|
|
||||||
fi
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- if [ "$DOCKER_BUILD" = true ]; then
|
- if [ "$DOCKER_BUILD" = true ]; then
|
||||||
|
|
@ -494,6 +513,11 @@ script:
|
||||||
./travis-build.sh;
|
./travis-build.sh;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
before_cache:
|
||||||
|
- if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
|
||||||
|
ccache -s;
|
||||||
|
fi
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
# upload to dropbox
|
# upload to dropbox
|
||||||
# need DROPBOX_OAUTH_BEARER environment variable
|
# need DROPBOX_OAUTH_BEARER environment variable
|
||||||
|
|
|
||||||
12
build.sh
12
build.sh
|
|
@ -231,6 +231,10 @@ while [ "$*" != "" ]; do
|
||||||
echo " -libcurl Use libcurl instead of QtNetwork (for Qt<4.7)"
|
echo " -libcurl Use libcurl instead of QtNetwork (for Qt<4.7)"
|
||||||
echo " -libexpat Use libexpat instead of QtXml"
|
echo " -libexpat Use libexpat instead of QtXml"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo "Environment Variables:"
|
||||||
|
echo ""
|
||||||
|
echo " QMAKE_CCACHE=1 Adds CONFIG+=ccache to qmake command (only works if Qt>=5.9.2)"
|
||||||
|
echo ""
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
@ -609,6 +613,14 @@ qmake_options=(
|
||||||
KLAYOUT_VERSION_REV="$KLAYOUT_VERSION_REV"
|
KLAYOUT_VERSION_REV="$KLAYOUT_VERSION_REV"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# This should speed up build time considerably
|
||||||
|
# https://ortogonal.github.io/ccache-and-qmake-qtcreator/
|
||||||
|
if [ $QMAKE_CCACHE = 1 ]; then
|
||||||
|
qmake_options+=(
|
||||||
|
CONFIG+="ccache"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $BUILD_EXPERT = 1 ]; then
|
if [ $BUILD_EXPERT = 1 ]; then
|
||||||
qmake_options+=(
|
qmake_options+=(
|
||||||
QMAKE_AR="$AR cqs"
|
QMAKE_AR="$AR cqs"
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ elif [[ $DOCKER_IMAGE == "quay.io/pypa/manylinux1_i686" ]]; then
|
||||||
fi
|
fi
|
||||||
echo $PATH
|
echo $PATH
|
||||||
export CCACHE_DIR="/io/ccache"
|
export CCACHE_DIR="/io/ccache"
|
||||||
|
ccache -M 5 G # set cache size to 5 G
|
||||||
|
|
||||||
# Download proper auditwheel program
|
# Download proper auditwheel program
|
||||||
git clone https://github.com/thomaslima/auditwheel.git /tmp/auditwheel
|
git clone https://github.com/thomaslima/auditwheel.git /tmp/auditwheel
|
||||||
|
|
@ -45,7 +46,6 @@ AUDITWHEEL_PYTHON=$(cat `which auditwheel` | head -1 | sed -e 's/#!\(.*\)/\1/')
|
||||||
# Install auditwheel, replacing the system's auditwheel binary
|
# Install auditwheel, replacing the system's auditwheel binary
|
||||||
$AUDITWHEEL_PYTHON -m pip install .
|
$AUDITWHEEL_PYTHON -m pip install .
|
||||||
|
|
||||||
|
|
||||||
# Show ccache stats
|
# Show ccache stats
|
||||||
echo "Cache stats:"
|
echo "Cache stats:"
|
||||||
ccache -s
|
ccache -s
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,20 @@ set -e
|
||||||
|
|
||||||
export PING_SLEEP=30s
|
export PING_SLEEP=30s
|
||||||
|
|
||||||
bash -c "while true; do echo -n '.'; sleep $PING_SLEEP; done" &
|
bash -c "while true; do find qt* | wc -l; sleep $PING_SLEEP; done" &
|
||||||
PING_LOOP_PID=$!
|
PING_LOOP_PID=$!
|
||||||
|
|
||||||
touch build.txt
|
touch build.txt
|
||||||
|
|
||||||
|
# Configure ccache
|
||||||
|
mkdir -p ccache;
|
||||||
|
export CCACHE_DIR="`pwd`/ccache"
|
||||||
|
export QMAKE_CCACHE=1
|
||||||
|
|
||||||
|
# Show ccache stats
|
||||||
|
echo "Cache stats:"
|
||||||
|
ccache -s
|
||||||
|
|
||||||
echo "build"
|
echo "build"
|
||||||
make build >> build.txt 2>&1 || tail -500 build.txt
|
make build >> build.txt 2>&1 || tail -500 build.txt
|
||||||
echo "deploy"
|
echo "deploy"
|
||||||
|
|
@ -17,6 +26,10 @@ make test >> build.txt 2>&1 || tail -500 build.txt
|
||||||
echo "dropbox-deploy"
|
echo "dropbox-deploy"
|
||||||
make dropbox-deploy
|
make dropbox-deploy
|
||||||
|
|
||||||
|
# Show ccache stats
|
||||||
|
echo "Cache stats:"
|
||||||
|
ccache -s
|
||||||
|
|
||||||
echo "build finished"
|
echo "build finished"
|
||||||
|
|
||||||
kill $PING_LOOP_PID
|
kill $PING_LOOP_PID
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue