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 GitHub actions for CI #163

Merged
merged 7 commits into from
Feb 25, 2021
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
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.