roswell.roswell/.travis.yml
SANO Masatoshi 1495f9e7ec add setarch
2020-02-08 13:32:21 +09:00

178 lines
5.2 KiB
YAML

language: c
sudo: false
dist: xenial
env:
global:
- PATH=~/.roswell/bin:/home/linuxbrew/.linuxbrew/bin:$PATH
- ROSWELL_BRANCH=$TRAVIS_BRANCH
- ROSWELL_INSTALL_DIR=$HOME/.roswell
- ROSWELL_REPO=https://github.com/${TRAVIS_REPO_SLUG}
matrix:
- LISP=alisp
- LISP=cmu-bin/2019-06
- LISP=sbcl
- LISP=ecl
- LISP=mkcl
- LISP=clisp
- LISP=abcl
- LISP=ccl-bin
- LISP=sbcl/1.1.14
- LISP=ccl32
- LISP=sbcl/git
os:
- osx
- linux
jobs:
allow_failures:
- env: LISP=sbcl/git
- env: LISP=mkcl
- env: LISP=abcl
include:
- os: windows
env: LISP=sbcl-bin
install:
- echo $mingw64
- export SETARCH=$mingw64
- $SETARCH sh ./scripts/install-for-ci.sh
- os: linux
arch: arm64
env: LISP=sbcl-bin
addons:
apt:
packages:
- libcurl4-openssl-dev
- sudo: required
name: "valgrind"
os: linux
install:
- sh bootstrap
- CFLAGS="-g -O0" ./configure --disable-dependency-tracking --disable-maintainer-mode
- make
- sudo make install
- make maintainer-clean
script:
- ros setup
- valgrind --leak-check=yes ros config
- ros config
addons:
apt:
packages:
- valgrind
- os: linux
name: "update documents"
if: branch = master
install:
- find . \( -name \*.lisp -o -name \*.ros \) -type f|xargs wc -l -c
- find . \( -name \*.c -o -name \*.h \) -type f|xargs wc -l -c
- pandoc -v
script:
- rm documents/man/* documents/html/*
- sh bootstrap
- ./configure --enable-manual-generation --enable-html-generation
- make
- sudo make install
- ros config
after_success:
- git config user.email "auto@example.com"; git config user.name "Travis-CI";
- if [ "$TRAVIS_BRANCH" = "master" ]; then
git branch;git status;
git checkout $TRAVIS_BRANCH;git add -u;git add documents/man/* documents/html/*;
git commit -m "[ci skip] documents update";
git push --force --quiet "https://${GITHUB_OAUTH_TOKEN}:x-oauth-basic@github.com/roswell/roswell.git" $TRAVIS_BRANCH > /dev/null 2>&1;
fi
addons:
apt:
packages:
- pandoc
- ruby-sass
- os: linux
name: "linuxbrew"
install:
- yes ""| sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
- brew update
- brew --env
- brew config
- brew doctor || true
- brew install curl
- brew install roswell --HEAD
script:
- ros version;
- ros version=t run;
- ros install prove;
- run-prove roswell-test.asd 2>&1;
- os: osx
name: "homebrew"
install:
- brew doctor || true
- brew install roswell --HEAD
script:
- ros version;
- ros version=t run;
- ros install prove;
- run-prove roswell-test.asd 2>&1;
#branches:
# except:
# - /^v[0-9]/
addons:
apt:
packages:
- libc6-i386
# - gcc-multilib
before_install:
- date
- |-
case $TRAVIS_OS_NAME in
windows)
[[ ! -f C:/tools/msys64/msys2_shell.cmd ]] && rm -rf C:/tools/msys64
choco uninstall -y mingw
choco upgrade --no-progress -y msys2
RefreshEnv.cmd
export msys2='set MSYS=winsymlinks:nativestrict '
export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start'
export mingw64="$msys2 -mingw64 -full-path -here -c "\"\$@"\" --"
export msys2+=" -msys2 -c "\"\$@"\" --"
$msys2 pacman --sync --noconfirm --needed autoconf automake make zlib-devel mingw-w64-x86_64-gcc mingw-w64-i686-gcc
taskkill //IM gpg-agent.exe //F # https://travis-ci.community/t/4967
export PATH=/C/tools/msys64/mingw64/bin:$PATH
export MAKE=mingw32-make # so that Autotools can find it
;;
osx)
brew update
brew --env
brew config
;;
esac
install:
- $SETARCH sh ./scripts/install-for-ci.sh
script:
- $SETARCH ros version
- $SETARCH ros version=t run
- $SETARCH ros install prove
- $SETARCH run-prove roswell-test.asd 2>&1
- $SETARCH ros -q run && [`ros -q run 2>&1` == ""]
- if [ "$LISP" = "sbcl-bin" ] && [ x$ALLOW_FAILURES != x ]; then
if [ $TRAVIS_OS_NAME = osx ]; then
sudo ros -e '(ignore-errors (with-open-file (o (format nil "/~A" (code-char 12354)) :direction :output)))';
fi;
if [ $ALLOW_FAILURES = YES ]; then
ros sbcl.patchless=t install sbcl;
else
ros install sbcl --sbcl-bin;
[`ros -e "(ros:ignore-shebang)" -e '(loop for x in (directory "src/lisp/*.ros") do (load x))' 2>&1` == ""];
fi;
make -C t/tree-shaker ;
fi
- $SETARCH ros config
before_cache:
- |-
case $TRAVIS_OS_NAME in
windows)
# https://unix.stackexchange.com/a/137322/107554
$msys2 pacman --sync --clean --noconfirm
;;
esac