git.iko.soy/typeable/pandoc
on master help sign in
Remove .travis.yml and add CircleCI config.
commit211b6a1fc7ebc32c8c2e156bcf918928dda2ad5b authorJohn MacFarlane <jgm@berkeley.edu> dateThu 17 Dec 2020, 12:40 (6 years ago) parentb220165
4 files changed+63−178
.circleci/config.yml+63−122 .travis.yml−54 cabal.project−1 stack.yaml−1
.circleci/config.yml+63−122
@@ -1,130 +1,71 @@
11version: "2.1"
2−
3−env: &env
2+jobs:
3+ build:
4+ macos:
5+ xcode: 9.4.1
46 environment:
5− LC_ALL: "C.UTF-8"
6− docker:
7− - image: fpco/stack-build:lts-13
8−
9−#-----------------------------------------------------------------------------
10−# Common utility stuff, not to be modified usually
11−#-----------------------------------------------------------------------------
12−
13−preinstall: &preinstall
14− run: |
15− echo 'export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH' >> $BASH_ENV
16− source $BASH_ENV
17− apt-get update
18−
19−restore: &restore
20− # Needs to happen after installing ca-certificates
21− restore_cache:
22− key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
23−
24−save: &save
25− save_cache:
26− key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
27− paths:
28− - ~/.cabal
29− - ~/.ghc
30− - ~/.local
31− - ~/.stack
32−
33−commands:
34− cabal_build:
35− parameters:
36− ghcversion:
37− type: string
7+ HOMEBREW_NO_AUTO_UPDATE: 1
388 steps:
39− - checkout
40− - *preinstall
41− - *restore
42− - run:
43− name: install cabal
44− command: apt-get install -y cabal-install-2.4
45− - run:
46− name: install ghc
47− command: |
48− apt-get install -y ghc-<< parameters.ghcversion >>
49− - run:
50− name: build and test project
51− command: |
52− set -e
53− cabal v2-update
54− TMPDIR=`mktemp -d -t circleci.XXXXXXX`
55− cabal v2-sdist --output-dir=${TMPDIR}
56− cd ${TMPDIR}
57− tar xvzf *.tar.gz
58− cd *
59− cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --dependencies-only --enable-tests --enable-benchmarks
60− cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests --enable-benchmarks 2>build.log
61− cat build.log
62− # fail if we had warnings in local build
63− # this is to work around the fact that cabal v2 doesn't allow
64− # us to use -Werror for just local build:
65− # https://github.com/haskell/cabal/issues/4247
66− ! grep -q "[Ww]arning:" build.log
67− cabal v2-test -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests
68− cabal v2-haddock -w ghc-<< parameters.ghcversion >>
69− cabal check
70− - *save
9+ - checkout
10+ - restore_cache:
11+ # See https://circleci.com/docs/2.0/caching/
12+ name: Restore Cached Dependencies
13+ keys:
14+ - stack-dependencies-{{ checksum "stack.yaml" }}
15+ - run:
16+ name: Install stack
17+ command: stack --version || brew update && brew install haskell-stack
18+ - run:
19+ name: Resolve/Update Dependencies
20+ command: stack --no-terminal setup
21+ - run:
22+ name: Run tests
23+ command: stack --no-terminal test
24+ - run:
25+ name: Install executable
26+ command: stack --no-terminal install
27+ - run:
28+ name: Create artifacts
29+ command: |
30+ export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
31+ export ARTIFACTS=macos-release-candidate
32+ export RESOURCES=${ARTIFACTS}/Resources
33+ export ROOT=${ARTIFACTS}/pandoc
34+ export DEST=${ROOT}/usr/local
35+ export ME=$(whoami)
36+ export BASE=pandoc-$VERSION
37+ mkdir -p ${ARTIFACTS}
38+ mkdir -p ${RESOURCES}
39+ mkdir -p ${DEST}/bin
40+ mkdir -p ${DEST}/share/man/man1
41+ cp ~/.local/bin/pandoc ${DEST}/bin/
42+ strip ${DEST}/bin/pandoc
43+ cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
44+ ~/.local/bin/pandoc -s COPYING.md -Vpagetitle=License -o ${RESOURCES}/license.html
45+ chown -R $ME:staff ${ROOT}
46+ sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
47+ cp macos/Makefile ${ARTIFACTS}/
48+ zip -r macos-release-candidate.zip ${ARTIFACTS}
7149
72−#-----------------------------------------------------------------------------
73−# Build matrix
74−#-----------------------------------------------------------------------------
50+ - save_cache:
51+ name: Cache Dependencies
52+ key: stack-dependencies-{{ checksum "stack.yaml" }}
53+ paths:
54+ - "/root/.stack"
55+ - ".stack-work"
56+ - "/usr/local/bin/stack"
7557
76−jobs:
77− cabal-ghc-8_8_1:
78− <<: *env
79− steps:
80− - cabal_build:
81− ghcversion: 8.8.1
82−
83− cabal-ghc-8_6_5:
84− <<: *env
85− steps:
86− - cabal_build:
87− ghcversion: 8.6.5
88−
89− cabal-ghc-8_4_4:
90− <<: *env
91− steps:
92− - cabal_build:
93− ghcversion: 8.4.4
94−
95− cabal-ghc-8_2_2:
96− <<: *env
97− steps:
98− - cabal_build:
99− ghcversion: 8.2.2
100−
101− cabal-ghc-8_0_2:
102− <<: *env
103− steps:
104− - cabal_build:
105− ghcversion: 8.0.2
106−
107− stack-ghc-8_6:
108− <<: *env
109− steps:
110− - checkout
111− - *preinstall
112− - *restore
113− - run: |
114− set -e
115− apt-get install -y ghc-8.6.5
116− stack update
117− stack test --system-ghc --fast --ghc-options="-Werror" .
118− - *save
58+ - store_artifacts:
59+ # https://circleci.com/docs/2.0/artifacts/
60+ path: macos-release-candidate.zip
61+ destination: macos-release-candidate.zip
11962
12063workflows:
121− version: "2.1"
122− build:
64+ version: 2
65+ release:
12366 jobs:
124− - cabal-ghc-8_6_5
125− - cabal-ghc-8_4_4
126− - cabal-ghc-8_2_2
127− - cabal-ghc-8_0_2
128− - stack-ghc-8_6
129− # - cabal-ghc-8_8_1
130−
67+ - build:
68+ filters:
69+ branches:
70+ only:
71+ - /rc\/.*/
.travis.ymldeleted−54
@@ -1,54 +0,0 @@
1−os: osx
2−language: generic
3−cache:
4− timeout: 1000
5− directories:
6− - "$HOME/.stack/"
7− - ".stack-work/"
8−branches:
9− only:
10− - /rc\/.*/
11−install:
12−- set -e
13−- ulimit -n 4096
14−- brew install haskell-stack
15−- which stack
16−- stack --version
17−- stack setup
18−- stack exec -- ghc --version
19−- |
20− export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
21− export BASEDIR=$(pwd)
22− export ARTIFACTS=${BASEDIR}/macos-release-candidate
23− export RESOURCES=${ARTIFACTS}/Resources
24− export ROOT=${ARTIFACTS}/pandoc
25− export DEST=${ROOT}/usr/local
26− export ME=$(whoami)
27− export BASE=pandoc-$VERSION
28− mkdir -p ${ARTIFACTS}
29− mkdir -p ${RESOURCES}
30− mkdir -p ${DEST}/bin
31− mkdir -p ${DEST}/share/man/man1
32− stack build --dependencies-only pandoc
33− stack build pandoc
34− for f in $(find .stack-work/install -name 'pandoc' -perm +001 -type f); do cp $f ${DEST}/bin/; done
35− strip ${DEST}/bin/pandoc
36− cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
37− ${DEST}/bin/pandoc -t html5 -s COPYING.md -Vpagetitle=License \
38− -o ${RESOURCES}/license.html
39− chown -R $ME:staff ${ROOT}
40− sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
41− cp macos/Makefile ${ARTIFACTS}/
42− echo ${VERSION} > ${ARTIFACTS}/version.txt
43−deploy:
44− on:
45− all_branches: true
46− provider: s3
47− bucket: travis-jgm-pandoc
48− region: us-west-1
49− edge: true
50− local_dir: macos-release-candidate
51− access_key_id:
52− secure: ohEst8EP8Z3r/bPMlYgPATo3B/ye48Z0aGp4W1pEhDZjqufLUVTFBIoicvPApCkTrbKMNTdG+KmasrO/leHpju0uFKYQHDtJmHZe3avIOIdbGnOqn97+mmLZBN5skiJWNtrxnN/TuAM+wlePz1dQpohPt6J3S70ct8DsOdZOaGI=
53− secret_access_key:
54− secure: qZ2RN4Bx4WRcVz9H8ae4S6a3AA85kcca0RdMimIREdGSx4ewMYa8lSdcKDvRbPwXRy8H3SeviqL2tTZw3+ej1jccAHowMj8Zvde5EJwX0+qO4Sr0zdWjnsvMeUmx9pO1oL3L/09KTWiMTT+d4XNpE8eqiY08qN8oMj0EPeR/AS4=
cabal.project−1
@@ -10,4 +10,3 @@ package pandoc
1010-- type: git
1111-- location: https://github.com/jgm/citeproc
1212-- tag: a8193fe375fa2354049bf9a967ba3bad4b1ba053
13−
stack.yaml−1
@@ -26,4 +26,3 @@ ghc-options:
2626resolver: lts-16.23
2727nix:
2828 packages: [zlib]
29−