1
1
mirror of https://github.com/aelve/guide.git synced 2024-11-23 04:07:14 +03:00
guide/.travis.yml

115 lines
5.0 KiB
YAML
Raw Normal View History

2016-11-15 13:36:26 +03:00
sudo: true
dist: xenial
2016-02-02 12:35:39 +03:00
language: generic
addons:
2017-08-13 15:59:57 +03:00
chrome: stable
services:
- xvfb
before_install:
- # start your web application and listen on `localhost`
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=5000 http://localhost &
2016-02-02 12:35:39 +03:00
cache:
directories:
- $HOME/.stack
- .stack-work
2018-12-10 01:02:03 +03:00
- back/.stack-work
- back/static/js # Needed so that bundle.js would persist to the
# "Push Docker image" stage and beyond - without it
# the backend doesn't work and the tests don't run.
2018-09-02 19:09:23 +03:00
timeout: 1000
2016-02-02 12:35:39 +03:00
2018-09-02 20:45:34 +03:00
jobs:
2016-02-02 12:35:39 +03:00
include:
- stage: "Build the frontend and upload a Docker image"
script:
# Build
- cd front
- npm install
- npm run build
- cd -
# Upload the Docker image
- |
if [ "$TRAVIS_EVENT_TYPE" = "push" ]; then
export BRANCH="$(echo "$TRAVIS_BRANCH" | tr '/' '-')"
make front/travis-docker "tag=$BRANCH--front"
docker login quay.io -u "$DOCKER_USER" -p "$DOCKER_PASS"
docker push "quay.io/aelve/guide:$BRANCH--front"
fi
- stage: "Build the backend and upload a Docker image"
2018-09-02 20:45:34 +03:00
before_script:
- sudo apt-get install -y libgmp-dev
- curl -sSL https://get.haskellstack.org/ | sh
# travis_retry works around https://github.com/commercialhaskell/stack/issues/4888
- travis_retry stack setup
2018-09-02 20:45:34 +03:00
script:
# Build
- stack --no-terminal build --test --no-run-tests --dependencies-only
- stack --no-terminal build --test --no-run-tests
# Upload the Docker image
- |
if [ "$TRAVIS_EVENT_TYPE" = "push" ]; then
export BRANCH="$(echo "$TRAVIS_BRANCH" | tr '/' '-')"
make back/travis-docker "tag=$BRANCH--back"
docker login quay.io -u "$DOCKER_USER" -p "$DOCKER_PASS"
docker push "quay.io/aelve/guide:$BRANCH--back"
fi
# Check that no new undocumented definitions are introduced. Our
# goal is full documented code with ZERO undocumented definitions.
# This check warns if a commit increases the amount of undocumented
# definitions (currently 251).
#
# First we unregister the package so that Haddocks would be rebuilt
# from scratch, then we build haddocks and count the lines for
# "missing documentation".
- stack --no-terminal exec -- ghc-pkg unregister guide
- stack --no-terminal build --test --no-run-tests --haddock --no-haddock-deps --haddock-arguments='--no-warnings' 2> haddock.log
- awk '/\(src\//' haddock.log | awk 'END { print NR }' > undocumented
- awk '{ print "undocumented == " $1 }' undocumented
- |
if [[ `cat undocumented` -gt 251 ]]; then
>&2 echo "FAIL: found $(cat undocumented) top-level undocumented definitions. The current limit is 251. Please, add Haddock comments to undocumented definitions!"
exit 1
fi
before_cache:
- rm -rf $HOME/.stack/programs # GHC is faster to install than to cache
Task/log monad (#264) * monad DiT * addition of monad DiT to gaider * add deriving * fix of exceptions * Logger.hs * logging * configs * fix * cathing of exception * logger structure * configs fixes * log format * add time format to config * add logs * add logs * add show instances to db actions * add log to matomo * add emptyOnExceptyon * fixing of tests * add test for logs * add test for api * add test for api * sdd tests to api * fix of tests * fix of tests * fix of errors * add api tests * add new tests for log * add new tests for log * add new tests for log * add new tests for log & api * ordering of API.hs * add test of traits to api * fixes to tests * fixes of test * add atributes to log * attributes to logs * fix to log * Fix proposals * Fix error level style * Try to fix travis tests * Add comment to servant error log * Revert openFile to check travis tests * Abstract withTempFile * Rework the way handlers are logged * Fix typos * Don't use pack * Add explicit export lists and warn about missing export lists * Fix comments * Get rid of useless H. * Make export lists consistent * Rewrite config comments * Log to stderr by default, not to /var/log/guide.log * Don't use module X * Rewrite Guider.Logger.Init slightly * No {- -} comments * Separate logTests from webspec module * Swap throwM with Di.Core.throw * Fix logging * No more .ghci * Formatting, etc * Remove loggers we're not going to use * Comment * Typo * Comments * searchQuery -> query It's called "query" in the API * Rename * More logging * Reorder things * Fix test compilation * Api -> ApiSpec * Remove constantly failing footer test * Rename logTest * Fix failing log test * TODO * We don't do caching anymore * Increase test time for move item up * Add haddocked test * Add uncommented function for test * Up haddock test * Add quotes * Remove ':' * Add curl stack * Delete test function * Up beforeHaddocked to 251 * Increase second threadDelay to 1 million * Check test fixes * Remove commented code * Return bracket function * Add comment
2019-02-26 08:40:42 +03:00
- stage: "Test the backend"
before_script:
- sudo apt-get install -y libgmp-dev fluxbox
- curl -sSL https://get.haskellstack.org/ | sh
# travis_retry works around https://github.com/commercialhaskell/stack/issues/4888
- travis_retry stack setup
2018-09-02 20:45:34 +03:00
# Install chromedriver
- wget https://chromedriver.storage.googleapis.com/76.0.3809.68/chromedriver_linux64.zip
2018-09-02 20:45:34 +03:00
- unzip chromedriver_linux64.zip
- chmod +x chromedriver
- sudo mv -f chromedriver /usr/local/share/chromedriver
- sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
- sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
# Run selenium-server
- travis_retry wget https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar -O selenium.jar
- java -jar selenium.jar 2> /dev/null &
2018-09-02 20:45:34 +03:00
- sleep 15
script:
- stack --no-terminal test
2018-12-10 01:02:03 +03:00
- make back/test-db
before_cache:
- rm -rf $HOME/.stack/programs # GHC is faster to install than to cache
2017-01-31 03:18:33 +03:00
# - stage: "Test the frontend"
# - sleep 10
# - fluxbox >/dev/null 2>&1 &
# script:
# # Run testcafe e2e testing
# - npm run test
2017-01-31 03:18:33 +03:00
notifications:
slack:
secure: BgQpUYFmvXrf7HVBP/fefS/8UVwES800+fT+ufgJX8b2HMx2FvaWVsdv3ErKAryLE0B3fwmvforWugTdgLO3kq66YUgSt51SNQOBLkMVGubIoQsgvr3Ernu+Wpw1DyoMkXQH9q9O9rfCIc4IwkQCEHqu5SVRqdOd5px/CHFl/ktTI22JkT8ap/Be53qjlB2U2sWUf4GxYXq0V/gGF6fDwsUwTVKFb14RfSDrOgK5Vlce2GRf3gNr1C/j7A7EHIR/Z+rNd2hvv69cFw6TRc3s39QmP8XPe3SLZPIHTZ8vRveX1SZioMeEy747r5rHd9vylEjxWtVHhvP9fOt693+woXa8ZAl5uVRgB6S4mTWLZ+LAbqhaCmDGJYr9GrrBMoqWvJiMuBX3ZvHptsAc6O2l/fxZQU3otTE++SmHkhbyoDQkcPCjXPDUi/ZlnoLc5zfMAfApcsZZ8b9t47z12H0O4uDZd2YiNPiQJ1iUA6R879LH3pcxPB3RaoWsfXzv/klkKrU/V2K4SXD9j4/bmAFArlig+dar+Dm44L/a3/G7vbU1lQIa1bG0EqB36qgUS3UCkuy2ppti/JTHpkYx7HVF2BipoCjOVvfBl9G8RkvcQIhyuCfOGm7WL1TjrKVMccIEGJKhm7OO6wOZYCBfAI5zILxi8XEJAIvBm9NywhQlwxI=