From 0b16518fffd895fbef333c83f4e76a9f4565bf40 Mon Sep 17 00:00:00 2001 From: Rusty Key Date: Tue, 23 Jul 2024 16:42:43 +0100 Subject: [PATCH] Add opam example --- examples.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/examples.md b/examples.md index 1bcde91..6a707ea 100644 --- a/examples.md +++ b/examples.md @@ -24,6 +24,7 @@ - [Node - Yarn](#node---yarn) - [Node - Yarn 2](#node---yarn-2) - [OCaml/Reason - esy](#ocamlreason---esy) +- [OCaml/Reason - opam](#ocamlreason---opam) - [PHP - Composer](#php---composer) - [Python - pip](#python---pip) - [Simple example](#simple-example) @@ -416,6 +417,30 @@ Esy allows you to export built dependencies and import pre-built dependencies. if: steps.restore-cache.outputs.cache-hit != 'true' ``` +## OCaml/Reason - opam + +This example requires you to have `opam.locked` file which you can generate with `opam lock .`. + +It's worth noting that even if lock file was change, it might be optimal to restore previous cache, so `hashFiles` in the key and if statement in "Save opam cache" step are optional. +```yaml + - name: Restore opam cache + id: restore-cache + uses: actions/cache/restore@v4 + with: + path: _opam + key: ${{ runner.os }}-opam-${{ hashFiles('opam.locked') }} + + - name: Install dependencies + run: opam install . --locked --deps-only -y + + - name: Save opam cache + if: steps.restore-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + path: _opam + key: ${{ steps.restore-cache.outputs.cache-primary-key }} +``` + ## PHP - Composer ```yaml