aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml185
-rw-r--r--.travis.yml54
-rw-r--r--cabal.project1
-rw-r--r--stack.yaml1
4 files changed, 63 insertions, 178 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 08c09a575..1ee7fddd2 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,130 +1,71 @@
version: "2.1"
-
-env: &env
+jobs:
+ build:
+ macos:
+ xcode: 9.4.1
environment:
- LC_ALL: "C.UTF-8"
- docker:
- - image: fpco/stack-build:lts-13
-
-#-----------------------------------------------------------------------------
-# Common utility stuff, not to be modified usually
-#-----------------------------------------------------------------------------
-
-preinstall: &preinstall
- run: |
- echo 'export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH' >> $BASH_ENV
- source $BASH_ENV
- apt-get update
-
-restore: &restore
- # Needs to happen after installing ca-certificates
- restore_cache:
- key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
-
-save: &save
- save_cache:
- key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
- paths:
- - ~/.cabal
- - ~/.ghc
- - ~/.local
- - ~/.stack
-
-commands:
- cabal_build:
- parameters:
- ghcversion:
- type: string
+ HOMEBREW_NO_AUTO_UPDATE: 1
steps:
- - checkout
- - *preinstall
- - *restore
- - run:
- name: install cabal
- command: apt-get install -y cabal-install-2.4
- - run:
- name: install ghc
- command: |
- apt-get install -y ghc-<< parameters.ghcversion >>
- - run:
- name: build and test project
- command: |
- set -e
- cabal v2-update
- TMPDIR=`mktemp -d -t circleci.XXXXXXX`
- cabal v2-sdist --output-dir=${TMPDIR}
- cd ${TMPDIR}
- tar xvzf *.tar.gz
- cd *
- cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --dependencies-only --enable-tests --enable-benchmarks
- cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests --enable-benchmarks 2>build.log
- cat build.log
- # fail if we had warnings in local build
- # this is to work around the fact that cabal v2 doesn't allow
- # us to use -Werror for just local build:
- # https://github.com/haskell/cabal/issues/4247
- ! grep -q "[Ww]arning:" build.log
- cabal v2-test -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests
- cabal v2-haddock -w ghc-<< parameters.ghcversion >>
- cabal check
- - *save
+ - checkout
+ - restore_cache:
+ # See https://circleci.com/docs/2.0/caching/
+ name: Restore Cached Dependencies
+ keys:
+ - stack-dependencies-{{ checksum "stack.yaml" }}
+ - run:
+ name: Install stack
+ command: stack --version || brew update && brew install haskell-stack
+ - run:
+ name: Resolve/Update Dependencies
+ command: stack --no-terminal setup
+ - run:
+ name: Run tests
+ command: stack --no-terminal test
+ - run:
+ name: Install executable
+ command: stack --no-terminal install
+ - run:
+ name: Create artifacts
+ command: |
+ export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
+ export ARTIFACTS=macos-release-candidate
+ export RESOURCES=${ARTIFACTS}/Resources
+ export ROOT=${ARTIFACTS}/pandoc
+ export DEST=${ROOT}/usr/local
+ export ME=$(whoami)
+ export BASE=pandoc-$VERSION
+ mkdir -p ${ARTIFACTS}
+ mkdir -p ${RESOURCES}
+ mkdir -p ${DEST}/bin
+ mkdir -p ${DEST}/share/man/man1
+ cp ~/.local/bin/pandoc ${DEST}/bin/
+ strip ${DEST}/bin/pandoc
+ cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
+ ~/.local/bin/pandoc -s COPYING.md -Vpagetitle=License -o ${RESOURCES}/license.html
+ chown -R $ME:staff ${ROOT}
+ sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
+ cp macos/Makefile ${ARTIFACTS}/
+ zip -r macos-release-candidate.zip ${ARTIFACTS}
-#-----------------------------------------------------------------------------
-# Build matrix
-#-----------------------------------------------------------------------------
+ - save_cache:
+ name: Cache Dependencies
+ key: stack-dependencies-{{ checksum "stack.yaml" }}
+ paths:
+ - "/root/.stack"
+ - ".stack-work"
+ - "/usr/local/bin/stack"
-jobs:
- cabal-ghc-8_8_1:
- <<: *env
- steps:
- - cabal_build:
- ghcversion: 8.8.1
-
- cabal-ghc-8_6_5:
- <<: *env
- steps:
- - cabal_build:
- ghcversion: 8.6.5
-
- cabal-ghc-8_4_4:
- <<: *env
- steps:
- - cabal_build:
- ghcversion: 8.4.4
-
- cabal-ghc-8_2_2:
- <<: *env
- steps:
- - cabal_build:
- ghcversion: 8.2.2
-
- cabal-ghc-8_0_2:
- <<: *env
- steps:
- - cabal_build:
- ghcversion: 8.0.2
-
- stack-ghc-8_6:
- <<: *env
- steps:
- - checkout
- - *preinstall
- - *restore
- - run: |
- set -e
- apt-get install -y ghc-8.6.5
- stack update
- stack test --system-ghc --fast --ghc-options="-Werror" .
- - *save
+ - store_artifacts:
+ # https://circleci.com/docs/2.0/artifacts/
+ path: macos-release-candidate.zip
+ destination: macos-release-candidate.zip
workflows:
- version: "2.1"
- build:
+ version: 2
+ release:
jobs:
- - cabal-ghc-8_6_5
- - cabal-ghc-8_4_4
- - cabal-ghc-8_2_2
- - cabal-ghc-8_0_2
- - stack-ghc-8_6
- # - cabal-ghc-8_8_1
-
+ - build:
+ filters:
+ branches:
+ only:
+ - /rc\/.*/
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6855ddd75..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-os: osx
-language: generic
-cache:
- timeout: 1000
- directories:
- - "$HOME/.stack/"
- - ".stack-work/"
-branches:
- only:
- - /rc\/.*/
-install:
-- set -e
-- ulimit -n 4096
-- brew install haskell-stack
-- which stack
-- stack --version
-- stack setup
-- stack exec -- ghc --version
-- |
- export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
- export BASEDIR=$(pwd)
- export ARTIFACTS=${BASEDIR}/macos-release-candidate
- export RESOURCES=${ARTIFACTS}/Resources
- export ROOT=${ARTIFACTS}/pandoc
- export DEST=${ROOT}/usr/local
- export ME=$(whoami)
- export BASE=pandoc-$VERSION
- mkdir -p ${ARTIFACTS}
- mkdir -p ${RESOURCES}
- mkdir -p ${DEST}/bin
- mkdir -p ${DEST}/share/man/man1
- stack build --dependencies-only pandoc
- stack build pandoc
- for f in $(find .stack-work/install -name 'pandoc' -perm +001 -type f); do cp $f ${DEST}/bin/; done
- strip ${DEST}/bin/pandoc
- cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
- ${DEST}/bin/pandoc -t html5 -s COPYING.md -Vpagetitle=License \
- -o ${RESOURCES}/license.html
- chown -R $ME:staff ${ROOT}
- sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
- cp macos/Makefile ${ARTIFACTS}/
- echo ${VERSION} > ${ARTIFACTS}/version.txt
-deploy:
- on:
- all_branches: true
- provider: s3
- bucket: travis-jgm-pandoc
- region: us-west-1
- edge: true
- local_dir: macos-release-candidate
- access_key_id:
- secure: ohEst8EP8Z3r/bPMlYgPATo3B/ye48Z0aGp4W1pEhDZjqufLUVTFBIoicvPApCkTrbKMNTdG+KmasrO/leHpju0uFKYQHDtJmHZe3avIOIdbGnOqn97+mmLZBN5skiJWNtrxnN/TuAM+wlePz1dQpohPt6J3S70ct8DsOdZOaGI=
- secret_access_key:
- secure: qZ2RN4Bx4WRcVz9H8ae4S6a3AA85kcca0RdMimIREdGSx4ewMYa8lSdcKDvRbPwXRy8H3SeviqL2tTZw3+ej1jccAHowMj8Zvde5EJwX0+qO4Sr0zdWjnsvMeUmx9pO1oL3L/09KTWiMTT+d4XNpE8eqiY08qN8oMj0EPeR/AS4=
diff --git a/cabal.project b/cabal.project
index 23ff56c5b..ead57cd20 100644
--- a/cabal.project
+++ b/cabal.project
@@ -10,4 +10,3 @@ package pandoc
-- type: git
-- location: https://github.com/jgm/citeproc
-- tag: a8193fe375fa2354049bf9a967ba3bad4b1ba053
-
diff --git a/stack.yaml b/stack.yaml
index f4adfc1e0..453b24c90 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -26,4 +26,3 @@ ghc-options:
resolver: lts-16.23
nix:
packages: [zlib]
-