71 lines
2.0 KiB
YAML
71 lines
2.0 KiB
YAML
sudo: required
|
|
|
|
language: generic
|
|
|
|
cache:
|
|
directories:
|
|
- $HOME/.ghc
|
|
- $HOME/.cabal
|
|
- $HOME/.stack
|
|
- $TRAVIS_BUILD_DIR/.stack-work
|
|
|
|
matrix:
|
|
include:
|
|
# Build only on macOS
|
|
- env: BUILD=stack
|
|
compiler: ": #stack default osx"
|
|
os: osx
|
|
|
|
# Build only master and release tags
|
|
branches:
|
|
only:
|
|
- master
|
|
- /^\d+\.\d+\.\d+(\.\d+)?$/
|
|
|
|
|
|
before_install:
|
|
# Using compiler above sets CC to an invalid value, so unset it
|
|
- unset CC
|
|
- CABALARGS=""
|
|
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:/opt/alex/$ALEXVER/bin:/opt/happy/$HAPPYVER/bin:$HOME/.cabal/bin:$PATH
|
|
- | # Install stack
|
|
mkdir -p ~/.local/bin
|
|
travis_retry curl -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
|
|
# Use the more reliable S3 mirror of Hackage
|
|
mkdir -p $HOME/.cabal
|
|
echo 'remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/' > $HOME/.cabal/config
|
|
echo 'remote-repo-cache: $HOME/.cabal/packages' >> $HOME/.cabal/config
|
|
|
|
|
|
install:
|
|
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
|
|
- SAVED_OPTIONS=$(set +o)
|
|
- set -ex
|
|
- stack --no-terminal --install-ghc build --only-dependencies
|
|
- eval "$SAVED_OPTIONS"
|
|
|
|
|
|
script:
|
|
- export PATH="${PATH}:$(pwd)/bin"
|
|
- stack build --flag dhall-json:gpl --copy-bins --local-bin-path ./bin
|
|
- source .travis-functions.sh
|
|
- tar -jcvf $(mk_release_name dhall) bin/dhall
|
|
- tar -jcvf $(mk_release_name dhall-json) bin/dhall-to-json bin/dhall-to-yaml bin/json-to-dhall bin/yaml-to-dhall
|
|
- tar -jcvf $(mk_release_name dhall-bash) bin/dhall-to-bash
|
|
- tar -jcvf $(mk_release_name dhall-lsp-server) bin/dhall-lsp-server
|
|
- tar -jcvf $(mk_release_name dhall-nix) bin/dhall-to-nix
|
|
- mkdir -p uploads
|
|
- mv *.tar.bz2 uploads/
|
|
|
|
|
|
deploy:
|
|
- provider: releases
|
|
api_key: $GITHUB_OAUTH_TOKEN
|
|
file_glob: true
|
|
file: uploads/*
|
|
skip_cleanup: true
|
|
on:
|
|
tags: true
|
|
script:
|
|
- echo 'done'
|