From c2bbaa26cf07e82c963ca7e80bed66160aa1cb48 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 1 Jun 2016 19:35:00 +0200 Subject: [PATCH] TRAVIS: build gh-pages --- .travis.yml | 10 +++++++++ update-gh-pages.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100755 update-gh-pages.sh diff --git a/.travis.yml b/.travis.yml index 35ad296..54029a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,12 @@ matrix: allow_failures: - env: CABALVER=head GHCVER=head +env: + global: + - secure: "qAzj5tgAghFIfO6R/+Hdc5KcFhwXKNXMICNH7VLmqLzmYxk1UEkpi6hgX/f1bP5mLd07D+0IaeGFIUIWQOp+F/Du1NiX3yGbFuTt/Ja4I0K4ooCQc0w9uYLv8epxzp3VEOEI5sVCSpSomFjr7V0jwwTcBbxGUvv1VaGkJwAexRxCHuwU23KD0toECkVDsOMN/Gg2Ue/r2o+MsGx1/B9WMF0g6+zWlnrYfYZXWetl0DwATK5lZTa/21THdMrbuPX0fijGXTywvURDpCd3wIdfx9n7jPO2Gp2rcxPL/WkcIpzI211g4hEiheS+AlVyW39+C4i4MKaNK8YC+/5DRl/YHrFc7n3SZPDh+RMs6r3DS41RyRhQhz8DE0Pg4zfe/WUX4+h72TijCZ1zduh146rofwku/IGtCz5cuel+7cmTPk9ZyENYnH0ZMftkZjor9J/KamcMsN4zfaQBNJuIM3Kg8HVts3ymNIWrJ1LUn41MNt1eBDDvOWxZaHrjLyATRCFYvMr4RE01pqYKnWZ9RFfzVaYjD0QQWPWAXcCtkcAHSR6T0NxAqjLmHBNm+yWYIKG+bK2CvPNYTTNN8n4UvY1SrBpJEnLcRRns3U8nM7SVZ4GMaYzOTWtN1n0zamsl42wV0L/wqpz1SePkRZ34jca3V07XRLQSN2wjj8DyvOZUFR0=" + before_install: + - sudo apt-get install -y hscolour - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH install: @@ -48,6 +53,11 @@ script: echo "expected '$SRC_TGZ' not found"; exit 1; fi + - sed -i -e '/hsfm,/d' hsfm.cabal + - cabal haddock --executables --internal --hyperlink-source --html-location=https://hackage.haskell.org/package/\$pkg-\$version/docs/ + +after_script: + - ./update-gh-pages.sh notifications: email: diff --git a/update-gh-pages.sh b/update-gh-pages.sh new file mode 100755 index 0000000..a0c1c37 --- /dev/null +++ b/update-gh-pages.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +SOURCE_BRANCH="master" +TARGET_BRANCH="gh-pages" +REPO="https://${GH_TOKEN}@github.com/hasufell/hsfm" +DOC_LOCATION="/dist/doc/html/hsfm/hsfm-gtk" + + +# Pull requests and commits to other branches shouldn't try to deploy, +# just build to verify +if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then + echo "Skipping docs deploy." + exit 0 +fi + + +cd "$HOME" +git config --global user.email "travis@travis-ci.org" +git config --global user.name "travis-ci" +git clone --branch=${TARGET_BRANCH} ${REPO} ${TARGET_BRANCH} || exit 1 + +# docs +cd ${TARGET_BRANCH} || exit 1 +echo "Removing old docs." +rm -rf * +echo "Adding new docs." +cp -rf "${TRAVIS_BUILD_DIR}${DOC_LOCATION}"/* . || exit 1 + +# If there are no changes to the compiled out (e.g. this is a README update) +# then just bail. +if [ -z "`git diff --exit-code`" ]; then + echo "No changes to the output on this push; exiting." + exit 0 +fi + +git add -- . + +if [[ -e ./index.html ]] ; then + echo "Commiting docs." + git commit -m "Lastest docs updated + +travis build: $TRAVIS_BUILD_NUMBER +commit: $TRAVIS_COMMIT +auto-pushed to gh-pages" + + git push origin $TARGET_BRANCH + echo "Published docs to gh-pages." +else + echo "Error: docs are empty." + exit 1 +fi +