Skip to content
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
62 changes: 36 additions & 26 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
# version: 0.19.20240514
# version: 0.19.20241223
#
# REGENDATA ("0.19.20240514",["--config=cabal.haskell-ci","github","cabal.project"])
# REGENDATA ("0.19.20241223",["--config=cabal.haskell-ci","github","cabal.project"])
#
name: Haskell-CI
on:
Expand All @@ -32,19 +32,24 @@ jobs:
strategy:
matrix:
include:
- compiler: ghc-9.12.1
compilerKind: ghc
compilerVersion: 9.12.1
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.10.1
compilerKind: ghc
compilerVersion: 9.10.1
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.8.2
- compiler: ghc-9.8.4
compilerKind: ghc
compilerVersion: 9.8.2
compilerVersion: 9.8.4
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.6.5
- compiler: ghc-9.6.6
compilerKind: ghc
compilerVersion: 9.6.5
compilerVersion: 9.6.6
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.4.8
Expand Down Expand Up @@ -79,15 +84,29 @@ jobs:
allow-failure: false
fail-fast: false
steps:
- name: apt
- name: apt-get install
run: |
apt-get update
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
- name: Install GHCup
run: |
mkdir -p "$HOME/.ghcup/bin"
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
chmod a+x "$HOME/.ghcup/bin/ghcup"
- name: Install cabal-install
run: |
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
- name: Install GHC (GHCup)
if: matrix.setup-method == 'ghcup'
run: |
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
echo "HC=$HC" >> "$GITHUB_ENV"
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
env:
HCKIND: ${{ matrix.compilerKind }}
HCNAME: ${{ matrix.compiler }}
Expand All @@ -98,21 +117,12 @@ jobs:
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
HCDIR=/opt/$HCKIND/$HCVER
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
echo "HC=$HC" >> "$GITHUB_ENV"
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" ; else echo "ARG_BENCH=--disable-benchmarks" >> "$GITHUB_ENV" ; fi
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
env:
HCKIND: ${{ matrix.compilerKind }}
HCNAME: ${{ matrix.compiler }}
Expand Down Expand Up @@ -170,7 +180,7 @@ jobs:
touch cabal.project
echo "packages: $GITHUB_WORKSPACE/source/indexed-traversable" >> cabal.project
echo "packages: $GITHUB_WORKSPACE/source/indexed-traversable-instances" >> cabal.project
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/indexed-traversable-benchmarks" >> cabal.project ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/indexed-traversable-benchmarks" >> cabal.project ; fi
cat cabal.project
- name: sdist
run: |
Expand All @@ -193,18 +203,18 @@ jobs:
touch cabal.project.local
echo "packages: ${PKGDIR_indexed_traversable}" >> cabal.project
echo "packages: ${PKGDIR_indexed_traversable_instances}" >> cabal.project
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then echo "packages: ${PKGDIR_indexed_traversable_benchmarks}" >> cabal.project ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then echo "packages: ${PKGDIR_indexed_traversable_benchmarks}" >> cabal.project ; fi
echo "package indexed-traversable" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
echo "package indexed-traversable-instances" >> cabal.project
echo " ghc-options: -Werror=missing-methods" >> cabal.project
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then echo "package indexed-traversable-benchmarks" >> cabal.project ; fi
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then echo "package indexed-traversable-benchmarks" >> cabal.project ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
cat >> cabal.project <<EOF
allow-newer: quickcheck-instances:base
allow-newer: quickcheck-instances:containers
allow-newer: uuid-types:template-haskell
allow-newer: these:base
allow-newer: semialign:base
EOF
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(indexed-traversable|indexed-traversable-benchmarks|indexed-traversable-instances)$/; }' >> cabal.project.local
cat cabal.project
Expand Down Expand Up @@ -234,8 +244,8 @@ jobs:
${CABAL} -vnormal check
cd ${PKGDIR_indexed_traversable_instances} || false
${CABAL} -vnormal check
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then cd ${PKGDIR_indexed_traversable_benchmarks} || false ; fi
if [ $((HCNUMVER < 91000)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then cd ${PKGDIR_indexed_traversable_benchmarks} || false ; fi
if [ $((HCNUMVER < 91200)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
- name: haddock
run: |
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
Expand All @@ -244,8 +254,8 @@ jobs:
rm -f cabal.project.local
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
- name: save cache
uses: actions/cache/save@v4
if: always()
uses: actions/cache/save@v4
with:
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
path: ~/.cabal/store
2 changes: 1 addition & 1 deletion cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ package indexed-traversable-benchmarks

allow-newer: quickcheck-instances:base
allow-newer: quickcheck-instances:containers
allow-newer: uuid-types:template-haskell
allow-newer: these:base
allow-newer: semialign:base
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ tested-with:
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.5
|| ==9.8.2
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1

source-repository head
type: git
Expand All @@ -36,7 +37,7 @@ benchmark folds
hs-source-dirs: bench
ghc-options: -Wall
build-depends:
base
base <5
, containers
, indexed-traversable
, indexed-traversable-instances
Expand All @@ -52,7 +53,7 @@ benchmark traversals
hs-source-dirs: bench
ghc-options: -Wall
build-depends:
base
base <5
, containers
, indexed-traversable
, indexed-traversable-instances
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
cabal-version: 1.12
name: indexed-traversable-instances
version: 0.1.2
x-revision: 1
build-type: Simple
license: BSD2
license-file: LICENSE
Expand All @@ -27,9 +28,10 @@ tested-with:
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.5
|| ==9.8.2
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1

source-repository head
type: git
Expand All @@ -40,7 +42,7 @@ library
default-language: Haskell2010
hs-source-dirs: src
build-depends:
base >=4.12 && <4.21
base >=4.12 && <4.22
, indexed-traversable >=0.1.4 && <0.2
, OneTuple >=0.3 && <0.5
, tagged >=0.8.6 && <0.9
Expand Down Expand Up @@ -75,7 +77,7 @@ test-suite indexed-tests
, vector

build-depends:
QuickCheck >=2.14.2 && <2.15
QuickCheck >=2.14.2 && <2.16
, quickcheck-instances >=0.3.29 && <0.4
, tasty >=1.2.3 && <1.6
, tasty-quickcheck >=0.10.1.1 && <0.11
, tasty-quickcheck >=0.10.1.1 && <0.12
8 changes: 5 additions & 3 deletions indexed-traversable/indexed-traversable.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
cabal-version: 1.12
name: indexed-traversable
version: 0.1.4
x-revision: 1
build-type: Simple
license: BSD2
license-file: LICENSE
Expand Down Expand Up @@ -40,9 +41,10 @@ tested-with:
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.5
|| ==9.8.2
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1

source-repository head
type: git
Expand All @@ -65,7 +67,7 @@ library

build-depends:
array >=0.3.0.2 && <0.6
, base >=4.12 && <4.21
, base >=4.12 && <4.22
, containers >=0.6.0.1 && <0.8
, transformers >=0.5.6.0 && <0.7

Expand Down