https://github.com/unisonweb/actions
Github Actions and Workflows
https://github.com/unisonweb/actions
Last synced: 3 months ago
JSON representation
Github Actions and Workflows
- Host: GitHub
- URL: https://github.com/unisonweb/actions
- Owner: unisonweb
- License: mit
- Created: 2024-03-22T15:46:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-18T10:25:42.000Z (12 months ago)
- Last Synced: 2025-10-04T05:54:26.717Z (8 months ago)
- Size: 27.3 KB
- Stars: 1
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## @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.