mirror of
https://github.com/facebook/duckling.git
synced 2025-01-06 04:53:13 +03:00
Add a travis script
Summary: This adds a travis script, so that we get feedback when we push or on pull requests. It builds and runs tests. We currently only test with GHC 8.0.2, other versions are broken for reasons given in the script. I relaxed the version of `time` in preparation for GHC 8.2. It also adds an icon in the README.md Reviewed By: JonCoens Differential Revision: D5002255 fbshipit-source-id: 47ff3af
This commit is contained in:
parent
d171c547dd
commit
3cc5d85ebd
87
.travis.yml
Normal file
87
.travis.yml
Normal file
@ -0,0 +1,87 @@
|
||||
# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
|
||||
language: c
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cabsnap
|
||||
- $HOME/.cabal/packages
|
||||
|
||||
before_cache:
|
||||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
|
||||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
|
||||
|
||||
matrix:
|
||||
include:
|
||||
# crashes in travis because 2 versions of unix get installed and
|
||||
# when text-show tries to use TH the wrong one gets linked
|
||||
# - env: CABALVER=1.24 GHCVER=7.10.3 HAPPYVER=1.19.5 BUILD=cabal
|
||||
# compiler: ": #GHC 7.10.3"
|
||||
# addons: {apt: {packages: [cabal-install-1.24,ghc-7.10.3,happy-1.19.5], sources: [hvr-ghc]}}
|
||||
- env: CABALVER=1.24 GHCVER=8.0.2
|
||||
compiler: ": #GHC 8.0.2"
|
||||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2,happy-1.19.5], sources: [hvr-ghc]}}
|
||||
# blocked on https://github.com/ygale/timezone-olson/pull/4
|
||||
# - env: CABALVER=1.24 GHCVER=8.2.1
|
||||
# compiler: ": #GHC 8.2.1"
|
||||
# addons: {apt: {packages: [cabal-install-1.24,ghc-8.2.1,happy-1.19.5], sources: [hvr-ghc]}}
|
||||
|
||||
before_install:
|
||||
- unset CC
|
||||
- export HAPPYVER=1.19.5
|
||||
- export PATH=$HOME/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
|
||||
- export PATH=/opt/happy/$HAPPYVER/bin:$PATH
|
||||
|
||||
install:
|
||||
- cabal --version
|
||||
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
|
||||
- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
|
||||
then
|
||||
zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
|
||||
$HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
|
||||
fi
|
||||
- travis_retry cabal update -v
|
||||
- sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
|
||||
- cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt
|
||||
- sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
|
||||
|
||||
# check whether current requested install-plan matches cached package-db snapshot
|
||||
- if diff -u $HOME/.cabsnap/installplan.txt installplan.txt;
|
||||
then
|
||||
echo "cabal build-cache HIT";
|
||||
rm -rfv .ghc;
|
||||
cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
|
||||
cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
|
||||
else
|
||||
echo "cabal build-cache MISS";
|
||||
rm -rf $HOME/.cabsnap;
|
||||
mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
|
||||
cabal install -j --only-dependencies --enable-tests --enable-benchmarks;
|
||||
fi
|
||||
|
||||
# snapshot package-db on cache miss
|
||||
- if [ ! -d $HOME/.cabsnap ];
|
||||
then
|
||||
echo "snapshotting package-db to build-cache";
|
||||
mkdir $HOME/.cabsnap;
|
||||
cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
|
||||
cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
|
||||
fi
|
||||
|
||||
# Here starts the actual work to be performed for the package under test;
|
||||
# any command which exits with a non-zero exit code causes the build to fail.
|
||||
script:
|
||||
- if [ -f configure.ac ]; then autoreconf -i; fi
|
||||
- cabal configure --enable-tests -v2 # -v2 provides useful information for debugging
|
||||
- cabal build -j # this builds all libraries and executables (including tests/benchmarks)
|
||||
- cabal test -j --show-details=always
|
||||
- cabal check
|
||||
- cabal sdist # tests that a source-distribution can be generated
|
||||
|
||||
# Check that the resulting source distribution can be built & installed.
|
||||
# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
|
||||
# `cabal install --force-reinstalls dist/*-*.tar.gz`
|
||||
- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
|
||||
(cd dist && cabal install --force-reinstalls "$SRC_TGZ")
|
||||
|
||||
# EOF
|
@ -1,6 +1,6 @@
|
||||
![Duckling Logo](https://github.com/facebookincubator/duckling/raw/master/logo.png)
|
||||
|
||||
# Duckling
|
||||
# Duckling [![Build Status](https://travis-ci.org/facebookincubator/duckling.svg?branch=master)](https://travis-ci.org/facebookincubator/duckling)
|
||||
Duckling is a Haskell library that parses text into structured data.
|
||||
|
||||
```
|
||||
|
@ -14,6 +14,8 @@ category: Systems
|
||||
build-type: Simple
|
||||
stability: alpha
|
||||
cabal-version: >=1.10
|
||||
tested-with:
|
||||
GHC==8.0.2
|
||||
|
||||
extra-source-files: README.md
|
||||
, PATENTS
|
||||
@ -489,7 +491,7 @@ library
|
||||
, regex-pcre >= 0.94.4 && < 0.95
|
||||
, text >= 1.2.2.1 && < 1.3
|
||||
, text-show >= 2.1.2 && < 3.5
|
||||
, time >= 1.5.0.1 && < 1.7
|
||||
, time >= 1.5.0.1 && < 1.9
|
||||
, timezone-series >= 0.1.5.1 && < 0.2
|
||||
, unordered-containers >= 0.2.7.2 && < 0.3
|
||||
default-language: Haskell2010
|
||||
@ -504,7 +506,7 @@ test-suite duckling-test
|
||||
, base >= 4.8.2 && < 5.0
|
||||
, aeson >= 0.11.3.0 && < 1.1
|
||||
, text >= 1.2.2.1 && < 1.3
|
||||
, time >= 1.5.0.1 && < 1.7
|
||||
, time >= 1.5.0.1 && < 1.9
|
||||
, unordered-containers >= 0.2.7.2 && < 0.3
|
||||
, tasty >= 0.11.1 && < 0.12
|
||||
, tasty-hunit >= 0.9.2 && < 1.0
|
||||
@ -718,7 +720,7 @@ executable duckling-example-exe
|
||||
, snap-server >= 1.0.1.1 && < 1.1
|
||||
, text >= 1.2.2.1 && < 1.3
|
||||
, text-show >= 2.1.2 && < 3.5
|
||||
, time >= 1.5.0.1 && < 1.7
|
||||
, time >= 1.5.0.1 && < 1.9
|
||||
, timezone-olson >= 0.1.7 && < 0.2
|
||||
, timezone-series >= 0.1.5.1 && < 0.2
|
||||
, unordered-containers >= 0.2.7.2 && < 0.3
|
||||
|
Loading…
Reference in New Issue
Block a user