Skip to content

Commit

Permalink
Add CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Martoon-00 committed Dec 16, 2020
1 parent 31e6aee commit b6b1071
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 0 deletions.
115 changes: 115 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# SPDX-FileCopyrightText: 2020 Kowainik
# SPDX-FileCopyrightText: 2020 Serokell <https://serokell.io/>
#
# SPDX-License-Identifier: MPL-2.0

# Sources:
# https://github.com/serokell/universum/blob/79d24f8f2fe592a3481b12db10e0db8abadca69e/.github/workflows/ci.yml

name: CI

# Trigger the workflow on push or pull request, but only for the master branch
on:
pull_request:
push:
branches: [master]

jobs:
xrefcheck:
name: Verify cross references
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: serokell/xrefcheck-action@v1
with:
xrefcheck-version: 0.1.2

cabal:
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
cabal: ["3.2"]
ghc:
- "8.4.4"
- "8.10.1"
exclude:
- os: macOS-latest
ghc: 8.10.1
- os: macOS-latest
ghc: 8.4.4
- os: windows-latest
ghc: 8.8.3
- os: windows-latest
ghc: 8.4.4

steps:
- uses: actions/checkout@v2
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'

- uses: actions/[email protected]
id: setup-haskell-cabal
name: Setup Haskell
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}

- uses: actions/cache@v1
name: Cache cabal-store
with:
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
key: ${{ runner.os }}-${{ matrix.ghc }}-cabal

- name: Build
run: |
cabal update
cabal build --project-file=cabal.project.ci --enable-tests --enable-benchmarks --write-ghc-environment-files=always
- name: Test
run: |
cabal test --project-file=cabal.project.ci all
- name: Haddock
# Run haddock for all components
run: |
cabal haddock --project-file=cabal.project.ci --haddock-all
stack:
name: stack / ghc ${{ matrix.ghc }}
runs-on: ubuntu-latest
strategy:
matrix:
stack: ["2.3"]
ghc: ["8.8.3"]

steps:
- uses: actions/checkout@v2
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'

- uses: actions/[email protected]
name: Setup Haskell Stack
with:
ghc-version: ${{ matrix.ghc }}
stack-version: ${{ matrix.stack }}

- uses: actions/cache@v1
name: Cache ~/.stack
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.ghc }}-stack

- name: Build
run: |
stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --ghc-options '-Werror' --haddock --no-haddock-deps
- name: Test
run: |
stack test --system-ghc
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v1
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Tasty-hunit-compat

![Build status](https://github.com/serokell/tasty-hunit-compat/workflows/CI/badge.svg)

This library implements the integration between [tasty](https://hackage.haskell.org/package/tasty) and [HUnit](https://hackage.haskell.org/package/HUnit) packages.

The way tasty provides this integration is reimplementing HUnit primitives, and this does not work with test suites written with the original HUnit library.
Expand Down
10 changes: 10 additions & 0 deletions cabal.project.ci
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- Sadly we can't pass `--ghc-options=-Werror` to `cabal build`
-- because it applies it to dependencies as well.
-- See: https://github.com/haskell/cabal/issues/3883
-- So we need this file.

packages:
tasty-hunit-compat.cabal

package universum
ghc-options: -Werror
3 changes: 3 additions & 0 deletions cabal.project.ci.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2020 Serokell <https://serokell.io>

SPDX-License-Identifier: MPL-2.0

0 comments on commit b6b1071

Please sign in to comment.