Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use circleci orb #33

Merged
merged 2 commits into from
Feb 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
208 changes: 31 additions & 177 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,185 +1,39 @@
cabalbuild: &cabalbuild
working_directory: ~/project
version: 2.1

steps:
- checkout
orbs:
haskell: haskell-works/haskell-build@1.5.3
github: haskell-works/github-release@1.2.1
hackage: haskell-works/hackage@1.0.0

- run:
name: Add GHC tools to PATH
command: |
echo "HOME=$HOME"
echo "BASH_ENV=$BASH_ENV"
echo "PATH=$PATH"
echo 'export PATH="$PATH:/opt/ghc/bin/"' >> $BASH_ENV

- run:
name: Copying scripts
command: |
mkdir -p ~/.local/bin
cp ./scripts/* ~/.local/bin

- run:
name: GHC version
command: |
echo "$GHC" > ghc.version
date +%Y-%m > month.version

- run:
name: Find all sub-projects
command: ./scripts/projects-summary > projects.summary

##### Building library
- restore_cache:
keys:
- cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "projects.summary" }}--extra
- cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "projects.summary" }}--
- cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "month.version"}}

- run:
name: Building build dependencies
command: |
cabal new-update
cabal new-build --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j${CABAL_THREADS:-4} all
cabal new-build --enable-tests --enable-benchmarks --project-file="cabal.project" --dep -j${CABAL_THREADS:-4} all

- save_cache:
key: cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "projects.summary" }}--
paths: [~/.cabal/packages, ~/.cabal/store]

- run:
name: Building project
command: |
cabal new-build --enable-tests --enable-benchmarks --project-file="cabal.project" -j${CABAL_THREADS:-4} all

- save_cache:
key: cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "projects.summary" }}--extra
paths: [~/.cabal/packages, ~/.cabal/store]

- save_cache:
key: cabal--{{ checksum "ghc.version" }}--{{ .Environment.CACHE_VERSION }}--{{ checksum "month.version"}}
paths: [~/.cabal/packages, ~/.cabal/store]

- run:
name: Running tests
command: |
if grep '^test-suite' *.cabal > /dev/null; then
cabal new-test --enable-tests --project-file="cabal.project" -j${CABAL_THREADS:-4} all
else
echo Not tests to run
fi

version: 2.0
jobs:
ghc-8.6.3:
environment:
- GHC: "ghc8.6.3"
docker:
- image: quay.io/haskell_works/ghc-8.6.3:18.04_2018-12-23
<<: *cabalbuild

ghc-8.4.3:
environment:
- GHC: "ghc8.4.3"
docker:
- image: quay.io/haskell_works/ghc-8.4.3
<<: *cabalbuild

ghc-8.2.2:
environment:
- GHC: "ghc8.2.2"
docker:
- image: quay.io/haskell_works/ghc-8.2.2
<<: *cabalbuild

ghc-7.10.3:
environment:
- GHC: "ghc7.10.3"
docker:
- image: quay.io/haskell_works/ghc-7.10.3
<<: *cabalbuild

checked-builds:
docker:
- image: quay.io/haskell_works/ghc-8.4.3

steps:
- checkout

- run:
name: Add GHC tools to PATH
command: |
echo "HOME=$HOME"
echo "BASH_ENV=$BASH_ENV"
echo "PATH=$PATH"
echo 'export PATH="$PATH:/opt/ghc/bin/"' >> $BASH_ENV

- run:
name: Copying scripts
command: |
mkdir -p ~/.local/bin
cp ./scripts/* ~/.local/bin

- deploy:
command: |
if [ "$CIRCLE_PROJECT_USERNAME" == "haskell-works" ]; then
if [[ "$CIRCLE_BRANCH" == master ]]; then
when tag autotag
elif [[ "$CIRCLE_TAG" =~ v.* ]]; then
publish
fi
fi

release:
docker:
- image: quay.io/haskell_works/ghc-8.4.3

steps:
- checkout
workflows:
multiple-ghc-build:
jobs:
- haskell/build:
name: GHC 8.2.2
executor: haskell/ghc-8_2_2

- run:
name: Add GHC tools to PATH
command: |
echo "HOME=$HOME"
echo "BASH_ENV=$BASH_ENV"
echo "PATH=$PATH"
echo 'export PATH="$PATH:/opt/ghc/bin/"' >> $BASH_ENV
- haskell/build:
name: GHC 8.4.4
executor: haskell/ghc-8_4_4

- run:
name: Copying scripts
command: |
mkdir -p ~/.local/bin
cp ./scripts/* ~/.local/bin
- haskell/build:
name: GHC 8.6.3
executor: haskell/ghc-8_6_3

- deploy:
command: |
if [ "$CIRCLE_PROJECT_USERNAME" == "haskell-works" ]; then
if [[ "$CIRCLE_BRANCH" == master ]]; then
when tag autotag
elif [[ "$CIRCLE_TAG" =~ v.* ]]; then
publish
fi
fi

workflows:
version: 2
multiple-ghcs:
jobs:
- ghc-8.6.3
- ghc-8.4.3
- ghc-8.2.2
- ghc-7.10.3
- checked-builds:
- github/release-cabal:
name: GitHub Release
requires:
- ghc-8.6.3
- ghc-8.4.3
- ghc-8.2.2
- ghc-7.10.3

tagged-release:
jobs:
- release:
- GHC 8.2.2
- GHC 8.4.4
- GHC 8.6.3
checkout: true
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/
only: master

- hackage/upload:
publish: true
requires:
- GitHub Release
username: ${HACKAGE_USER}
password: ${HACKAGE_PASS}
1 change: 1 addition & 0 deletions .circleci/whitelist-dependencies.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vector
7 changes: 2 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ before_cache:

matrix:
include:
- compiler: "ghc-8.6.1"
- compiler: "ghc-8.6.3"
# env: TEST=--disable-tests BENCH=--disable-benchmarks
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.1], sources: [hvr-ghc]}}
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.3], sources: [hvr-ghc]}}
- compiler: "ghc-8.4.4"
# env: TEST=--disable-tests BENCH=--disable-benchmarks
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}
Expand All @@ -34,9 +34,6 @@ matrix:
- compiler: "ghc-8.0.2"
# env: TEST=--disable-tests BENCH=--disable-benchmarks
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}}
- compiler: "ghc-7.10.3"
# env: TEST=--disable-tests BENCH=--disable-benchmarks
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.10.3], sources: [hvr-ghc]}}

before_install:
- HC=${CC}
Expand Down
2 changes: 1 addition & 1 deletion hw-streams.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ maintainer: newhoggy@gmail.com
copyright: 2016-2018 John Ky
license: BSD3
license-file: LICENSE
tested-with: GHC == 8.6.1, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3
tested-with: GHC == 8.6.3, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2
build-type: Simple
extra-source-files:
README.md
Expand Down