Don't run biicode on Travis
This commit is contained in:
parent
7ae6dfbcba
commit
14d1fb561f
@ -15,12 +15,9 @@ env:
|
|||||||
- BUILD_TYPE=Release
|
- BUILD_TYPE=Release
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- mkdir build && cd build
|
- cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DFMT_EXTRA_TESTS=ON .
|
||||||
- cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DFMT_EXTRA_TESTS=ON ..
|
|
||||||
- make -j4
|
- make -j4
|
||||||
- CTEST_OUTPUT_ON_FAILURE=1 make test
|
- CTEST_OUTPUT_ON_FAILURE=1 make test
|
||||||
- cd .. && rm -rf build/
|
|
||||||
- support/biicode-build.py
|
|
||||||
|
|
||||||
after_failure:
|
after_failure:
|
||||||
- cat Testing/Temporary/LastTest.log
|
- cat Testing/Temporary/LastTest.log
|
||||||
|
@ -1,28 +1,9 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# Build the project with Biicode.
|
# Build the project with Biicode.
|
||||||
|
|
||||||
import bootstrap, glob, os, shutil, sys
|
import glob, os, shutil
|
||||||
from download import Downloader
|
|
||||||
from subprocess import check_call
|
from subprocess import check_call
|
||||||
|
|
||||||
os_name = os.environ['TRAVIS_OS_NAME']
|
|
||||||
if os_name != 'linux':
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
cmake_dir = 'cmake-dir'
|
|
||||||
cmake_program = 'cmake'
|
|
||||||
|
|
||||||
# Install newer version of CMake.
|
|
||||||
cmake_program = bootstrap.install_cmake(
|
|
||||||
'cmake-3.1.1-Linux-i386.tar.gz', check_installed=False, download_dir=None, install_dir='.')
|
|
||||||
cmake_dir = glob.glob('cmake*')[0]
|
|
||||||
with Downloader().download('http://www.biicode.com/downloads/latest/ubuntu64') as f:
|
|
||||||
check_call(['sudo', 'dpkg', '-i', f])
|
|
||||||
|
|
||||||
env = os.environ.copy()
|
|
||||||
env['PATH'] = os.path.abspath(os.path.dirname(cmake_program)) + ':' + env['PATH']
|
|
||||||
env['CMAKE_ROOT'] = os.path.abspath(cmake_dir)
|
|
||||||
|
|
||||||
project_dir = 'biicode_project'
|
project_dir = 'biicode_project'
|
||||||
check_call(['bii', 'init', project_dir], env=env)
|
check_call(['bii', 'init', project_dir], env=env)
|
||||||
cppformat_dir = os.path.join(project_dir, 'blocks/vitaut/cppformat')
|
cppformat_dir = os.path.join(project_dir, 'blocks/vitaut/cppformat')
|
||||||
@ -30,6 +11,4 @@ shutil.copytree('.', cppformat_dir,
|
|||||||
ignore=shutil.ignore_patterns('biicode_project', cmake_dir))
|
ignore=shutil.ignore_patterns('biicode_project', cmake_dir))
|
||||||
for f in glob.glob('support/biicode/*'):
|
for f in glob.glob('support/biicode/*'):
|
||||||
shutil.copy(f, cppformat_dir)
|
shutil.copy(f, cppformat_dir)
|
||||||
print env['CMAKE_ROOT']
|
check_call(['bii', 'cpp:build'], cwd=project_dir, env=env)
|
||||||
check_call(['cmake', '--version'], env=env)
|
|
||||||
#check_call(['bii', 'cpp:build'], cwd=project_dir, env=env)
|
|
||||||
|
@ -1,195 +0,0 @@
|
|||||||
# Common bootstrap functionality.
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import glob, os, platform, re, shutil, sys
|
|
||||||
import tarfile, tempfile, uuid, zipfile
|
|
||||||
from contextlib import closing
|
|
||||||
from subprocess import check_call, call
|
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
|
|
||||||
import timer
|
|
||||||
from download import Downloader
|
|
||||||
|
|
||||||
windows = platform.system() == 'Windows'
|
|
||||||
opt_dir = r'\Program Files' if windows else '/opt'
|
|
||||||
|
|
||||||
# Downloads to a temporary file in the current directory.
|
|
||||||
# When running in a Vagrant VM, the current directory is in a synced folder so
|
|
||||||
# this reduces VM growth.
|
|
||||||
def download(url, cookie=None):
|
|
||||||
return Downloader('.').download(url, cookie);
|
|
||||||
|
|
||||||
# If we are in a VM managed by Vagrant, then do everything in the shared
|
|
||||||
# /vagrant directory to avoid growth of the VM drive.
|
|
||||||
vagrant_dir = '/vagrant'
|
|
||||||
def bootstrap_init():
|
|
||||||
if os.path.exists(vagrant_dir):
|
|
||||||
os.chdir(vagrant_dir)
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
# Returns executable location.
|
|
||||||
def which(name):
|
|
||||||
filename = name + '.exe' if windows else name
|
|
||||||
for path in os.environ['PATH'].split(os.pathsep):
|
|
||||||
path = os.path.join(path.strip('"'), filename)
|
|
||||||
if os.path.isfile(path) and os.access(path, os.X_OK):
|
|
||||||
return path
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Returns true if executable is installed on the path.
|
|
||||||
def installed(name):
|
|
||||||
path = which(name)
|
|
||||||
if path:
|
|
||||||
print(name, 'is installed in', path)
|
|
||||||
return path != None
|
|
||||||
|
|
||||||
def create_symlink(filename, linkname):
|
|
||||||
if not os.path.exists(linkname):
|
|
||||||
print('Creating a symlink from', linkname, 'to', filename)
|
|
||||||
os.symlink(filename, linkname)
|
|
||||||
else:
|
|
||||||
print('File already exists:', linkname)
|
|
||||||
|
|
||||||
# Adds path to search paths.
|
|
||||||
def add_to_path(path, linkname=None, isdir=False):
|
|
||||||
paths = os.environ['PATH'].split(os.pathsep)
|
|
||||||
dir = path if isdir else os.path.dirname(path)
|
|
||||||
print('Adding', dir, 'to PATH')
|
|
||||||
if isdir:
|
|
||||||
paths.insert(0, dir)
|
|
||||||
else:
|
|
||||||
paths.append(dir)
|
|
||||||
os.environ['PATH'] = os.pathsep.join(paths)
|
|
||||||
if windows:
|
|
||||||
check_call(['setx', '/m', 'PATH', os.environ['PATH']])
|
|
||||||
if windows or isdir:
|
|
||||||
return
|
|
||||||
dir = '/usr/local/bin'
|
|
||||||
# Create /usr/local/bin directory if it doesn't exist which can happen
|
|
||||||
# on OS X.
|
|
||||||
if not os.path.exists(dir):
|
|
||||||
os.makedirs(dir)
|
|
||||||
linkname = os.path.join(dir, linkname or os.path.basename(path))
|
|
||||||
create_symlink(path, linkname)
|
|
||||||
|
|
||||||
# Downloads and installs CMake.
|
|
||||||
# package: The name of a CMake package,
|
|
||||||
# e.g. 'cmake-2.8.12.2-Linux-i386.tar.gz'.
|
|
||||||
def install_cmake(package, **kwargs):
|
|
||||||
if kwargs.get('check_installed', True) and installed('cmake'):
|
|
||||||
return
|
|
||||||
dir, version, minor = re.match(
|
|
||||||
r'(cmake-(\d+\.\d+)\.(\d+).*-[^\.]+)\..*', package).groups()
|
|
||||||
# extractall overwrites existing files, so no need to prepare the
|
|
||||||
# destination.
|
|
||||||
url = 'http://www.cmake.org/files/v{0}/{1}'.format(version, package)
|
|
||||||
install_dir = kwargs.get('install_dir', opt_dir)
|
|
||||||
with Downloader(kwargs.get('download_dir', '.')).download(url) as f:
|
|
||||||
iszip = package.endswith('zip')
|
|
||||||
with zipfile.ZipFile(f) if iszip \
|
|
||||||
else closing(tarfile.open(f, 'r:gz')) as archive:
|
|
||||||
archive.extractall(install_dir)
|
|
||||||
dir = os.path.join(install_dir, dir)
|
|
||||||
if platform.system() == 'Darwin':
|
|
||||||
dir = glob.glob(os.path.join(dir, 'CMake*.app', 'Contents'))[0]
|
|
||||||
cmake_path = os.path.join(dir, 'bin', 'cmake')
|
|
||||||
if install_dir != '.':
|
|
||||||
add_to_path(cmake_path)
|
|
||||||
return cmake_path
|
|
||||||
|
|
||||||
# Install f90cache.
|
|
||||||
def install_f90cache():
|
|
||||||
if not installed('f90cache'):
|
|
||||||
f90cache = 'f90cache-0.95'
|
|
||||||
tempdir = tempfile.mkdtemp(suffix='f90cache', dir='')
|
|
||||||
with download(
|
|
||||||
'http://people.irisa.fr/Edouard.Canot/f90cache/' +
|
|
||||||
f90cache + '.tar.bz2', False) as f:
|
|
||||||
with closing(tarfile.open(f, "r:bz2")) as archive:
|
|
||||||
archive.extractall(tempdir)
|
|
||||||
f90cache_dir = os.path.join(tempdir, f90cache)
|
|
||||||
check_call(['sh', 'configure'], cwd=f90cache_dir)
|
|
||||||
check_call(['make', 'all', 'install'], cwd=f90cache_dir)
|
|
||||||
shutil.rmtree(tempdir)
|
|
||||||
|
|
||||||
# Returns true iff module exists.
|
|
||||||
def module_exists(module):
|
|
||||||
try:
|
|
||||||
__import__(module)
|
|
||||||
return True
|
|
||||||
except ImportError:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# Install package using pip if it hasn't been installed already.
|
|
||||||
def pip_install(package, test_module=None):
|
|
||||||
if not test_module:
|
|
||||||
test_module = package
|
|
||||||
if module_exists(test_module):
|
|
||||||
return
|
|
||||||
# If pip doesn't exist install it first.
|
|
||||||
if not module_exists('pip'):
|
|
||||||
with download('https://bootstrap.pypa.io/get-pip.py') as f:
|
|
||||||
check_call(['python', f])
|
|
||||||
# Install the package.
|
|
||||||
print('Installing', package)
|
|
||||||
check_call(['pip', 'install', package])
|
|
||||||
|
|
||||||
# Installs buildbot slave.
|
|
||||||
def install_buildbot_slave(name, path=None, script_dir='', shell=False, **args):
|
|
||||||
username = 'vagrant'
|
|
||||||
if platform.system() == 'Linux':
|
|
||||||
# Create buildbot user if it doesn't exist.
|
|
||||||
username = 'buildbot'
|
|
||||||
import pwd
|
|
||||||
try:
|
|
||||||
pwd.getpwnam(username)
|
|
||||||
except KeyError:
|
|
||||||
check_call(['sudo', 'useradd', '--system', '--home', '/var/lib/buildbot',
|
|
||||||
'--create-home', '--shell', '/bin/false', 'buildbot'])
|
|
||||||
path = path or os.path.expanduser('~{0}/slave'.format(username))
|
|
||||||
if os.path.exists(path):
|
|
||||||
return
|
|
||||||
pip_install('buildbot-slave', 'buildbot')
|
|
||||||
# The password is insecure but it doesn't matter as the buildslaves are
|
|
||||||
# not publicly accessible.
|
|
||||||
command = [os.path.join(script_dir, 'buildslave'),
|
|
||||||
'create-slave', path, args.get('ip', '10.0.2.2'), name, 'pass']
|
|
||||||
if not windows:
|
|
||||||
command = ['sudo', '-u', username] + command
|
|
||||||
check_call(command, shell=shell)
|
|
||||||
if windows:
|
|
||||||
return
|
|
||||||
if args.get('nocron', False):
|
|
||||||
return
|
|
||||||
pip_install('python-crontab', 'crontab')
|
|
||||||
from crontab import CronTab
|
|
||||||
cron = CronTab(username)
|
|
||||||
cron.new('PATH={0}:/usr/local/bin buildslave start {1}'.format(
|
|
||||||
os.environ['PATH'], path)).every_reboot()
|
|
||||||
cron.write()
|
|
||||||
# Ignore errors from buildslave as the buildbot may not be accessible.
|
|
||||||
call(['sudo', '-H', '-u', username, 'buildslave', 'start', path])
|
|
||||||
|
|
||||||
# Copies optional dependencies from opt/<platform> to /opt.
|
|
||||||
def copy_optional_dependencies(platform):
|
|
||||||
if os.path.exists('opt'):
|
|
||||||
for src in glob.glob('opt/' + platform + '/*'):
|
|
||||||
dest = '/opt/' + os.path.basename(src)
|
|
||||||
if not os.path.exists(dest):
|
|
||||||
shutil.copytree(src, dest, symlinks=True)
|
|
||||||
|
|
||||||
# Installs an OS X package.
|
|
||||||
def install_pkg(filename):
|
|
||||||
print('Installing', filename)
|
|
||||||
check_call(['sudo', 'installer', '-pkg', filename, '-target', '/'])
|
|
||||||
|
|
||||||
# Installs a package from a .dmg file.
|
|
||||||
def install_dmg(filename):
|
|
||||||
dir = tempfile.mkdtemp()
|
|
||||||
check_call(['hdiutil', 'attach', filename, '-mountpoint', dir])
|
|
||||||
install_pkg(glob.glob(dir + '/*pkg')[0])
|
|
||||||
check_call(['hdiutil', 'detach', dir])
|
|
||||||
os.rmdir(dir)
|
|
||||||
|
|
||||||
LOCALSOLVER_VERSION = '4_5_20140718'
|
|
Loading…
Reference in New Issue
Block a user