From ac74aadde6a45f47abf41099d41dc64dc06148c7 Mon Sep 17 00:00:00 2001
From: Marco Aceti <marco.aceti@studenti.unimi.it>
Date: Thu, 8 Jun 2023 15:52:21 +0200
Subject: [PATCH] Add caching support in mdbook-deploy workflow

---
 .github/workflows/mdbook-deploy.yml | 33 +++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/mdbook-deploy.yml b/.github/workflows/mdbook-deploy.yml
index 9a0cd26..0776849 100644
--- a/.github/workflows/mdbook-deploy.yml
+++ b/.github/workflows/mdbook-deploy.yml
@@ -32,20 +32,49 @@ jobs:
           sudo apt-get update -y
           sudo apt-get install -y wget default-jre default-jdk graphviz libssl-dev pkg-config
 
+      - name: Restore from cache
+        uses: actions/cache/restore@v3
+        id: cache-restore
+        with:
+          path: |
+            plantuml.jar
+            ~/.cargo/bin/
+            ~/.cargo/registry/index/
+            ~/.cargo/registry/cache/
+            ~/.cargo/git/db/
+          key: ${{ runner.os }}
+
       - name: Install mdBook
+        if: steps.cache-restore.outputs.cache-hit != 'true'
         run: |
           curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
           rustup update
           cargo install mdbook
           cargo install mdbook-plantuml
 
-      - name: Install PlantUML
+      - name: Download PlantUML
+        if: steps.cache-restore.outputs.cache-hit != 'true'
         run: |
           wget https://github.com/plantuml/plantuml/releases/download/v1.2022.13/plantuml-1.2022.13.jar -O plantuml.jar
-          echo "#!/bin/bash" > plantuml ; echo "java -jar $PWD/plantuml.jar \"\$1\" \"\$2\"" >> plantuml
+
+      - name: Install PlantUML
+        run: |
+          echo "#!/bin/bash" > plantuml ; echo "java -jar $PWD/plantuml.jar \"\$@\"" >> plantuml
           sudo mv plantuml /usr/bin/plantuml
           sudo chmod +x /usr/bin/plantuml
 
+      - name: Save PlantUML to cache
+        id: cache-save
+        uses: actions/cache/save@v3
+        with:
+          path: |
+            plantuml.jar
+            ~/.cargo/bin/
+            ~/.cargo/registry/index/
+            ~/.cargo/registry/cache/
+            ~/.cargo/git/db/
+          key: ${{ steps.cache-restore.outputs.cache-primary-key }}
+
       - name: Setup Pages
         id: pages
         uses: actions/configure-pages@v3
-- 
GitLab