A collection of reusable GitHub Actions workflows.
Setup mise environment for your workflow.
Cache support is powered by actions/cache.
There are some cache presets supported via the cache-preset input:
mise-task— Caches mise task artifacts & state (~/.cache/mise/task-artifacts,~/.local/state/mise/task-artifacts,~/.local/state/mise/task-sources), keyed by OS. Requirescache = { enabled = true }in yourmise.tomltasks.nub— Caches nub virtual store (~/.local/share/nub/store/v1), keyed bynub.lock
You can pass a single preset or comma-separated multiple, and override preset via JSON configurations:
- uses: lumirelle/workflows/setup-mise@main
with:
cache-preset: 'mise-task,nub'
cache-preset-path: '{"mise-task":["/path/a","/path/b"],"nub":"/custom/nub"}'
cache-preset-key: '{"nub":["nub-Linux-","nub-"]}'
cache-preset-restore-keys: '{"mise-task":"mise-task-","nub":"nub-"}'Each preset runs as an independent cache step with its own key and path.
For a custom cache, set cache-path (and optionally cache-key / cache-restore-keys). This adds an extra cache step alongside any presets:
- uses: lumirelle/workflows/setup-mise@v10
with:
# mise-task & nub still works
cache-preset: 'mise-task,nub'
# Your custom cache rules
cache-path: ./.cache
cache-key: 'custom-${{ runner.os }}'mise-deps— Caches mise deps state (~/.local/state/mise/deps), keyed by OS.- Deps state is strongly correlated with the real dependencies, such as
node_modulesfornpmbackend. Cache dependencies directly is a bad idea: There are many OS & architecture based dependencies cannot be shared, also, the decompressed dependencies may exceed the cache limit.
- Deps state is strongly correlated with the real dependencies, such as
hk— Caches hk cache dir (~/.cache/hk), keyed byhk.pkl- Use
mise-taskcache preset instead.
- Use
- ci.yaml: A workflow for continuous integration, runs
mise run check&mise run testby default; - ci-autofix.yaml: A workflow for continuous integration with autofix, runs
mise run fixby default; - ci-coverage.yaml: A workflow for continuous integration with code coverage, runs
mise run test --coverageby default;
- release.yaml: A workflow for releasing a new version, runs
mise run changelog&&mise run publishby default; - release-commit.yaml: A workflow for generating a release commit, runs
mise run publish-commit;