mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 17:15:33 +00:00
travis: Reworking travis setup.
* Move the code into scripts inside .travis directory. * Build on multiple compiler versions. Fixes #442 - Make travis build pass Fixes #441 - Fix git version information on travis build Fixes #440 - Make travis cache the iverilog build
This commit is contained in:
parent
f513494f5f
commit
d2850b5b80
5 changed files with 262 additions and 33 deletions
49
.travis/build-and-test.sh
Executable file
49
.travis/build-and-test.sh
Executable file
|
@ -0,0 +1,49 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
source .travis/common.sh
|
||||
|
||||
##########################################################################
|
||||
|
||||
echo
|
||||
echo 'Configuring...' && echo -en 'travis_fold:start:script.configure\\r'
|
||||
echo
|
||||
|
||||
if [ "$CONFIG" = "gcc" ]; then
|
||||
echo "Configuring for gcc."
|
||||
make config-gcc
|
||||
elif [ "$CONFIG" = "clang" ]; then
|
||||
echo "Configuring for clang."
|
||||
make config-clang
|
||||
fi
|
||||
|
||||
echo
|
||||
echo -en 'travis_fold:end:script.configure\\r'
|
||||
echo
|
||||
|
||||
##########################################################################
|
||||
|
||||
echo
|
||||
echo 'Building...' && echo -en 'travis_fold:start:script.build\\r'
|
||||
echo
|
||||
|
||||
make
|
||||
|
||||
echo
|
||||
echo -en 'travis_fold:end:script.build\\r'
|
||||
echo
|
||||
|
||||
##########################################################################
|
||||
|
||||
echo
|
||||
echo 'Testing...' && echo -en 'travis_fold:start:script.test\\r'
|
||||
echo
|
||||
|
||||
make test
|
||||
|
||||
echo
|
||||
echo -en 'travis_fold:end:script.test\\r'
|
||||
echo
|
||||
|
||||
##########################################################################
|
15
.travis/common.sh
Normal file
15
.travis/common.sh
Normal file
|
@ -0,0 +1,15 @@
|
|||
#! /bin/bash
|
||||
|
||||
# Setup the CC / CXX from the matrix config
|
||||
eval "${MATRIX_EVAL}"
|
||||
|
||||
# Look for location binaries first
|
||||
export PATH="$HOME/.local-bin/bin:$PATH"
|
||||
|
||||
# OS X specific common setup
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
||||
fi
|
||||
|
||||
# Parallel builds!
|
||||
MAKEFLAGS="-j 2"
|
6
.travis/deploy-after-success.sh
Executable file
6
.travis/deploy-after-success.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
# FIXME: Upload the build results somewhere...
|
89
.travis/setup.sh
Executable file
89
.travis/setup.sh
Executable file
|
@ -0,0 +1,89 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
source .travis/common.sh
|
||||
|
||||
##########################################################################
|
||||
|
||||
# Fixing Travis's git clone
|
||||
echo
|
||||
echo 'Fixing git setup...' && echo -en 'travis_fold:start:before_install.git\\r'
|
||||
echo
|
||||
git fetch --unshallow && git fetch --tags
|
||||
|
||||
# For pull requests, we get more info about the git source.
|
||||
if [ z"$TRAVIS_PULL_REQUEST_SLUG" != z ]; then
|
||||
echo "- Fetching from pull request source"
|
||||
git remote add source https://github.com/$TRAVIS_PULL_REQUEST_SLUG.git
|
||||
git fetch source && git fetch --tags
|
||||
|
||||
echo "- Fetching the actual pull request"
|
||||
git fetch origin pull/$TRAVIS_PULL_REQUEST/head:pull-$TRAVIS_PULL_REQUEST-head
|
||||
git fetch origin pull/$TRAVIS_PULL_REQUEST/merge:pull-$TRAVIS_PULL_REQUEST-merge
|
||||
|
||||
git log -n 5 --graph pull-$TRAVIS_PULL_REQUEST-merge
|
||||
fi
|
||||
|
||||
# For building branches we need to fix the "detached head" state.
|
||||
if [ z"$TRAVIS_BRANCH" != z ]; then
|
||||
TRAVIS_COMMIT_ACTUAL=$(git log --pretty=format:'%H' -n 1)
|
||||
echo "- Fixing detached head (current $TRAVIS_COMMIT_ACTUAL -> $TRAVIS_COMMIT)"
|
||||
git fetch origin $TRAVIS_COMMIT
|
||||
git branch -v
|
||||
git branch -D $TRAVIS_BRANCH || true
|
||||
git checkout $TRAVIS_COMMIT -b $TRAVIS_BRANCH
|
||||
git branch -v
|
||||
fi
|
||||
|
||||
# Output status information.
|
||||
git status
|
||||
git describe --tags
|
||||
git log -n 5 --graph
|
||||
echo
|
||||
echo -en 'travis_fold:end:before_install.git\\r'
|
||||
echo
|
||||
|
||||
##########################################################################
|
||||
|
||||
# Mac OS X specific setup.
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
(
|
||||
echo
|
||||
echo 'Setting up brew...' && echo -en 'travis_fold:start:before_install.brew\\r'
|
||||
echo
|
||||
brew update
|
||||
brew tap Homebrew/bundle
|
||||
brew bundle
|
||||
brew install ccache
|
||||
brew install gcc
|
||||
echo
|
||||
echo -en 'travis_fold:end:before_install.brew\\r'
|
||||
echo
|
||||
)
|
||||
fi
|
||||
|
||||
##########################################################################
|
||||
|
||||
# Install iverilog
|
||||
(
|
||||
if [ ! -e ~/.local/bin/iverilog ]; then
|
||||
echo
|
||||
echo 'Building iverilog...' && echo -en 'travis_fold:start:before_install.iverilog\\r'
|
||||
echo
|
||||
mkdir -p ~/.local-src
|
||||
mkdir -p ~/.local-bin
|
||||
cd ~/.local-src
|
||||
git clone git://github.com/steveicarus/iverilog.git
|
||||
cd iverilog
|
||||
autoconf
|
||||
./configure --prefix=$HOME/.local-bin
|
||||
make
|
||||
make install
|
||||
echo
|
||||
echo -en 'travis_fold:end:before_install.iverilog\\r'
|
||||
echo
|
||||
fi
|
||||
)
|
||||
|
||||
##########################################################################
|
Loading…
Add table
Add a link
Reference in a new issue