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

add readme #3

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
66 changes: 66 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## @unisonweb/actions/stack/install
Installs `stack` and adds it to the path.

Example usage:
```
steps:
- uses: unisonweb/actions/stack/install@main
with:
version: 2.9.1
```
`version` is optional.

## @unisonweb/actions/stack/cache/restore
Restore the global and local stack work directories from a cache

Example usage:
```
steps:
- name: restore stack caches
id: restore-stack-caches
uses: unisonweb/actions/stack/cache/restore@main
with:
cache-prefix: ci

- name: check result
if: steps.restore-stack-caches.outputs.cache-hit == 'true'
run: echo "Found an exact match!"
shell: bash
```

The caches are keyed by the cache prefix, the OS, and the resolver version in your `stack.yaml`, and the contents of your `stack.yaml` and `package.yaml`.

For a partial hit, only the cache prefix, the OS, and the resolver version must match, so you can use the `cache-prefix` input to distinguish between caches you wouldn't want to use as fallbacks, even if the OS and resolver match.

### Inputs
`cache-prefix`: The cache prefix to use for `~/.stack`, e.g. "release" or "ci". Required.
`work-cache-prefix`: The cache prefix to use for `**/.stack-work`. Defaults to the same as `cache-prefix`.
`stack-yaml-dir`: The directory to search for `stack.yaml`. Defaults to `"."`
`lookup-only`: If `'true'`, only checks if cache entry exists and skips download. Defaults to `'false'`. Note that due to technical limitations, these are strings, not Booleans.

### Outputs
`cache-hit`: Whether the `.stack` cache was restored with an exact match.
`work-cache-hit`: `'true'` or `'false'`, whether the `.stack-work` cache was restored with an exact match. Note that due to technical limitations, these are strings, not Booleans.

## @unisonweb/actions/stack/cache/save
Save the global and local stack work directories to caches.

Due to a technical limitation, these actions provide independent `restore` and `save` functionality. This is in contrast to the `github/actions/cache` action which automatically saves at the end of a succesful run, whenever there was not an exact cache hit during restore.

Instead, you have to do this manually: restoring at the start, and saving at the end whenever there was not an exact cache hit during restore.

Example usage:
```
steps:
- name: save stack caches
if: steps.restore-stack-caches.outputs.cache-hit != 'true'
uses: unisonweb/actions/stack/cache/save@main
with:
cache-prefix: ci
```

### Inputs
`cache-prefix`: The cache prefix to use for `~/.stack`, e.g. "release" or "ci". Required.
`work-cache-prefix`: The cache prefix to use for `**/.stack-work`. Defaults to the same as `cache-prefix`.
`stack-yaml-dir`: The directory to search for `stack.yaml`. Defaults to `"."`
`lookup-only`: If `'true'`, only checks if cache entry exists and skips download. Defaults to `'false'`. Note that due to technical limitations, these are strings, not Booleans.
2 changes: 1 addition & 1 deletion stack/install/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ inputs:
stack-version:
description: "The version of stack to install, e.g. 2.9.1"
required: true
default: "2.9.1"
default: 2.9.1
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been trying to only use string delimiters where required


runs:
using: "composite"
Expand Down