diff --git a/README.md b/README.md index c7c25a5..5d7b20e 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ See [Examples](examples.md) for a list of `actions/cache` implementations for us - [Elixir - Mix](./examples.md#elixir---mix) - [Go - Modules](./examples.md#go---modules) - [Haskell - Cabal](./examples.md#haskell---cabal) +- [Haskell - Stack](./examples.md#haskell---stack) - [Java - Gradle](./examples.md#java---gradle) - [Java - Maven](./examples.md#java---maven) - [Node - npm](./examples.md#node---npm) diff --git a/examples.md b/examples.md index 8921857..7aa713a 100644 --- a/examples.md +++ b/examples.md @@ -10,6 +10,7 @@ - [macOS](#macos) - [Windows](#windows-1) - [Haskell - Cabal](#haskell---cabal) +- [Haskell - Stack](#haskell---stack) - [Java - Gradle](#java---gradle) - [Java - Maven](#java---maven) - [Node - npm](#node---npm) @@ -172,6 +173,25 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba restore-keys: ${{ runner.os }}-${{ matrix.ghc }}- ``` +## Haskell - Stack + +```yaml +- uses: actions/cache@v2 + name: Cache ~/.stack + with: + path: ~/.stack + key: ${{ runner.os }}-stack-global-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }} + restore-keys: | + ${{ runner.os }}-stack-global- +- uses: actions/cache@v2 + name: Cache .stack-work + with: + path: .stack-work + key: ${{ runner.os }}-stack-work-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}-${{ hashFiles('**/*.hs') }} + restore-keys: | + ${{ runner.os }}-stack-work- +``` + ## Java - Gradle >Note: Ensure no Gradle daemons are running anymore when your workflow completes. Creating the cache package might fail due to locks being held by Gradle. Refer to the [Gradle Daemon documentation](https://docs.gradle.org/current/userguide/gradle_daemon.html) on how to disable or stop the Gradle Daemons.