Skip to content

Commit

Permalink
Use GitHub actions for CI (#163)
Browse files Browse the repository at this point in the history
Co-authored-by: Tom Sydney Kerckhove <[email protected]>
  • Loading branch information
mrkkrp and Tom Sydney Kerckhove authored Feb 25, 2021
1 parent 51f9098 commit 05a747b
Show file tree
Hide file tree
Showing 9 changed files with 184 additions and 140 deletions.
111 changes: 111 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@

name: CI

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

jobs:
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.6.5"
- "8.8.4"
- "8.10.2"
# exclude:
# - os: macOS-latest
# ghc: 8.8.4
# - os: macOS-latest
# ghc: 8.6.5
# - os: windows-latest
# ghc: 8.10.2
# - os: windows-latest
# ghc: 8.6.5

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

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

- name: Configure
run: |
cabal configure --enable-tests --enable-benchmarks --test-show-details=direct
- name: Freeze
run: |
cabal freeze
- uses: actions/[email protected]
name: Cache ~/.cabal/store
with:
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}

- name: Install dependencies
run: |
cabal build all --only-dependencies
- name: Build
run: |
cabal build all
- name: Test
run: |
cabal test path:test
# - name: Test
# run: |
# cabal test path:validity-test

stack:
name: stack / ghc ${{ matrix.ghc }}
runs-on: ubuntu-latest
strategy:
matrix:
stack: ["2.3.1"]
ghc: ["8.8.4"]

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

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

- uses: actions/[email protected]
name: Cache ~/.stack
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.ghc }}-stack

- name: Install dependencies
run: |
stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies
- name: Build
run: |
stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
- name: Test
run: |
stack test --system-ghc :test
# - name: Test
# run: |
# stack test --system-ghc :validity-test
57 changes: 0 additions & 57 deletions .travis.yml

This file was deleted.

3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Path

[![Travis Build Status](https://travis-ci.org/commercialhaskell/path.svg)](https://travis-ci.org/commercialhaskell/path)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/commercialhaskell/path?svg=true)](https://ci.appveyor.com/project/chrisdone/path)
![CI](https://github.com/commercialhaskell/path/workflows/CI/badge.svg?branch=master)
[![Hackage](https://img.shields.io/hackage/v/path.svg)](https://hackage.haskell.org/package/path)
[![Stackage LTS](http://stackage.org/package/path/badge/lts)](http://stackage.org/lts/package/path)
[![Stackage Nightly](http://stackage.org/package/path/badge/nightly)](http://stackage.org/nightly/package/path)
Expand Down
21 changes: 0 additions & 21 deletions appveyor.yml

This file was deleted.

3 changes: 1 addition & 2 deletions path.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ copyright: 2015–2018 FP Complete
category: System, Filesystem
build-type: Simple
cabal-version: 1.18
tested-with: GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
tested-with: GHC==8.6.5, GHC==8.8.4, GHC==8.10.1
extra-source-files: README.md
, CHANGELOG
, src/Path/Include.hs
Expand Down Expand Up @@ -56,7 +56,6 @@ test-suite test
, Windows
, Common.Posix
, Common.Windows
, TH
hs-source-dirs: test
build-depends: aeson
, base >= 4.12 && < 5
Expand Down
31 changes: 31 additions & 0 deletions test/Common/Include.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,48 @@
-- PLATFORM_NAME = Posix | Windows
-- IS_WINDOWS = False | True

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}

-- | Test functions that are common to Posix and Windows

module Common.PLATFORM_NAME (extensionOperations) where

import Control.Monad
import qualified Language.Haskell.TH.Syntax as TH
import Path.Internal.PLATFORM_NAME
import Path.PLATFORM_NAME
import System.FilePath.PLATFORM_NAME (pathSeparator)
import Test.Hspec

class Foo a b where
foo :: Path a b -> FilePath
foo = toFilePath

instance Foo Abs Dir
instance Foo Abs File
instance Foo Rel Dir
instance Foo Rel File

qqRelDir :: FilePath
qqRelDir = foo [reldir|foo/|]

qqRelFile :: FilePath
qqRelFile = foo [relfile|foo|]

thRelDir :: FilePath
thRelDir = foo $(mkRelDir "foo/")

thRelFile :: FilePath
thRelFile = foo $(mkRelFile "foo")

liftRelDir :: FilePath
liftRelDir = foo $(TH.lift (Path "foo/" :: Path Rel Dir))

liftRelFile :: FilePath
liftRelFile = foo $(TH.lift (Path "foo" :: Path Rel File))

validExtensionsSpec :: String -> Path b File -> Path b File -> Spec
validExtensionsSpec ext file fext = do
let f = show $ toFilePath file
Expand Down
20 changes: 20 additions & 0 deletions test/Common/Posix.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE QuasiQuotes #-}

#define PLATFORM_NAME Posix
#define IS_WINDOWS False
#include "Include.hs"

qqAbsDir :: FilePath
qqAbsDir = foo [absdir|/foo/|]

qqAbsFile :: FilePath
qqAbsFile = foo [absdir|/foo|]

thAbsDir :: FilePath
thAbsDir = foo $(mkAbsDir "/foo/")

thAbsFile :: FilePath
thAbsFile = foo $(mkAbsFile "/foo")

liftAbsDir :: FilePath
liftAbsDir = foo $(TH.lift (Path "/foo/" :: Path Abs Dir))

liftAbsFile :: FilePath
liftAbsFile = foo $(TH.lift (Path "/foo" :: Path Abs File))
20 changes: 20 additions & 0 deletions test/Common/Windows.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE QuasiQuotes #-}
#define PLATFORM_NAME Windows
#define IS_WINDOWS True
#include "Include.hs"

qqAbsDir :: FilePath
qqAbsDir = foo [absdir|C:\foo\|]

qqAbsFile :: FilePath
qqAbsFile = foo [absdir|C:\foo|]

thAbsDir :: FilePath
thAbsDir = foo $(mkAbsDir "C:\\foo\\")

thAbsFile :: FilePath
thAbsFile = foo $(mkAbsFile "C:\\foo")

liftAbsDir :: FilePath
liftAbsDir = foo $(TH.lift (Path "C:\\foo\\" :: Path Abs Dir))

liftAbsFile :: FilePath
liftAbsFile = foo $(TH.lift (Path "C:\\foo" :: Path Abs File))

58 changes: 0 additions & 58 deletions test/TH.hs

This file was deleted.

0 comments on commit 05a747b

Please sign in to comment.