Skip to content

Commit

Permalink
CI: update caching logic, add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andreasabel committed Nov 1, 2023
1 parent 34395e9 commit cf4880d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 16 deletions.
53 changes: 38 additions & 15 deletions .github/workflows/haskell.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,57 @@
name: Haskell CI
name: Haskell

on:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: haskell/actions/setup@v1.2
- name: Cache
uses: actions/cache@v1
- uses: actions/checkout@v4
- uses: haskell-actions/setup@v2
id: setup
# Default options, written out for clarity:
with:
ghc-version: latest
cabal-update: true

- name: Configure build
run: |
cabal configure --enable-tests --enable-benchmarks --write-ghc-environment-files=always
cabal build --dry-run
# The latter creates the build plan in dist-newstyle/cache/plan.json

- name: Restore cached dependencies
uses: actions/cache/restore@v3
id: cache
env:
cache-name: cache-cabal
with:
path: ~/.cabal
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
key: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ steps.setup.outputs.ghc-version}}-plan-${{ hashFiles('dist-newstyle/cache/plan.json') }}
restore-keys: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ steps.setup.outputs.ghc-version}}-

- name: Install dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: |
cabal update
cabal build --only-dependencies --enable-tests --enable-benchmarks
cabal build --only-dependencies
- name: Cache dependencies
uses: actions/cache/save@v3
if: steps.cache.outputs.cache-hit != 'true'
with:
path: ~/.cabal
key: ${{ steps.cache.outputs.cache-primary-key }}

- name: Build
run: cabal build --enable-tests --enable-benchmarks all
run: |
cabal build all
- name: Test
run: |
cabal test all
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ would find useful.

## Development Status

[![Build Status](https://travis-ci.org/Gabriella439/Haskell-Foldl-Library.png)](https://travis-ci.org/Gabriella439/Haskell-Foldl-Library)
[![Build Status](https://github.com/Gabriella439/foldl/actions/workflows/haskell.yml/badge.svg)](https://github.com/Gabriella439/foldl/actions/workflows/haskell.yml)

The `foldl` library is pretty stable at this point. I don't expect there to be
breaking changes to the API from this point forward unless people discover new
Expand Down

0 comments on commit cf4880d

Please sign in to comment.