From d578d9766535f029c9e48a1cfb6b6ac760911496 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Mon, 15 Dec 2025 14:24:57 +0100 Subject: [PATCH 1/6] ci: add cache dependencies action --- .github/actions/cache-dependencies/action.yml | 45 ++++ .github/workflows/ci.yml | 223 +++++------------- 2 files changed, 107 insertions(+), 161 deletions(-) create mode 100644 .github/actions/cache-dependencies/action.yml diff --git a/.github/actions/cache-dependencies/action.yml b/.github/actions/cache-dependencies/action.yml new file mode 100644 index 0000000000..099626a4bb --- /dev/null +++ b/.github/actions/cache-dependencies/action.yml @@ -0,0 +1,45 @@ +name: Cache dependencies +description: Cache Rust (cargo + target) and pnpm store + +inputs: + enable-rust: + description: Whether to cache Rust dependencies + required: false + default: 'true' + rust-target-path: + description: Path to Rust target dir to cache (when enable-rust is true) + required: false + default: target/ + enable-pnpm: + description: Whether to cache pnpm store + required: false + default: 'true' + +runs: + using: composite + steps: + - name: Cache Rust dependencies + if: ${{ inputs.enable-rust == 'true' }} + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + ${{ inputs.rust-target-path }} + key: rust-deps-${{ hashFiles('**/Cargo.lock') }} + restore-keys: rust-deps- + + - name: Get pnpm store directory + if: ${{ inputs.enable-pnpm == 'true' }} + id: pnpm-cache + shell: bash + run: echo "STORE_PATH=$(pnpm store path)" >> "$GITHUB_OUTPUT" + + - name: Setup pnpm cache + if: ${{ inputs.enable-pnpm == 'true' }} + uses: actions/cache@v4 + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d80a603d8..fcc380f0fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,14 +35,10 @@ jobs: - uses: actions/checkout@v4 - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -68,19 +64,11 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -97,14 +85,10 @@ jobs: - uses: actions/checkout@v4 - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -130,19 +114,11 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -155,8 +131,6 @@ jobs: build_e3_support_risc0: runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.version.outputs.version }} steps: - uses: actions/checkout@v4 - name: Generate tags @@ -239,14 +213,10 @@ jobs: uses: 'actions/checkout@v4' - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -262,19 +232,11 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -320,14 +282,10 @@ jobs: uses: 'actions/checkout@v4' - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -342,19 +300,11 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: Install Nargo uses: noir-lang/noirup@v0.1.4 @@ -413,19 +363,11 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -476,14 +418,11 @@ jobs: submodules: recursive - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - templates/default/target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + rust-target-path: templates/default/target/ + enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable @@ -515,14 +454,10 @@ jobs: submodules: recursive - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Install Rust 1.86.0 uses: dtolnay/rust-toolchain@stable @@ -545,19 +480,11 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: Install dependencies working-directory: . @@ -596,14 +523,10 @@ jobs: submodules: recursive - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Prepare test environment run: | @@ -642,19 +565,11 @@ jobs: run: | sudo wget -qO- https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64.tar.gz | sudo tar xz -C /usr/local/bin --transform='s|yq_linux_amd64|yq|' --no-same-owner - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' - name: Install dependencies working-directory: . @@ -731,14 +646,11 @@ jobs: with: submodules: recursive - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - templates/default/target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + rust-target-path: templates/default/target/ + enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: @@ -772,28 +684,17 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - name: Setup pnpm cache - uses: actions/cache@v4 + - name: Cache pnpm store + uses: ./.github/actions/cache-dependencies with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + enable-rust: 'false' + enable-pnpm: 'true' + - name: Cache Rust dependencies - uses: actions/cache@v4 + uses: ./.github/actions/cache-dependencies with: - path: | - ~/.cargo/registry - ~/.cargo/git - target/ - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- + enable-rust: 'true' + enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable From d1c1020dd5b18fe459c87b2b2833884bc8698dcb Mon Sep 17 00:00:00 2001 From: Cedoor Date: Mon, 15 Dec 2025 14:29:13 +0100 Subject: [PATCH 2/6] ci: update setup node action to v4 --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcc380f0fd..6cca482e1e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: # We need to setup node in order to compile the hardhat contracts to get the artifacts - name: 'Setup node' - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 22 @@ -107,7 +107,7 @@ jobs: # We need to setup node in order to compile the hardhat contracts to get the artifacts - name: 'Setup node' - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 22 @@ -225,7 +225,7 @@ jobs: target: wasm32-unknown-unknown - name: 'Setup node' - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 22 From e0b63b2d48e195155c04acd1ef0a3c1d2c318ae1 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Mon, 15 Dec 2025 14:32:43 +0100 Subject: [PATCH 3/6] ci: add node and rust versions to env --- .github/workflows/ci.yml | 58 +++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cca482e1e..e3ed2363fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,8 @@ env: CIPHERNODE_DOCKERFILE_PATH: crates/Dockerfile SUPPORT_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/e3-support CIPHERNODE_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/ciphernode + NODE_VERSION: 22 + RUST_TOOLCHAIN: 1.86.0 HARDHAT_VAR_MNEMONIC: 'test test test test test test test test test test test junk' HARDHAT_VAR_INFURA_API_KEY: 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz' PRIVATE_KEY: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' @@ -40,10 +42,10 @@ jobs: enable-rust: 'true' enable-pnpm: 'false' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} # We must install foundry in order to be able to test anvil - name: Install Foundry @@ -59,7 +61,7 @@ jobs: - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 @@ -90,10 +92,10 @@ jobs: enable-rust: 'true' enable-pnpm: 'false' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} # We must install foundry in order to be able to test anvil - name: Install Foundry @@ -109,7 +111,7 @@ jobs: - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 @@ -218,16 +220,16 @@ jobs: enable-rust: 'true' enable-pnpm: 'false' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} target: wasm32-unknown-unknown - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 @@ -265,7 +267,7 @@ jobs: - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 - name: 'Run network tests' @@ -287,15 +289,15 @@ jobs: enable-rust: 'true' enable-pnpm: 'false' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 @@ -359,7 +361,7 @@ jobs: - name: 'Setup node' uses: actions/setup-node@v4 with: - node-version: 22 + node-version: ${{ env.NODE_VERSION }} - name: pnpm-setup uses: pnpm/action-setup@v4 @@ -369,10 +371,10 @@ jobs: enable-rust: 'false' enable-pnpm: 'true' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' - name: 'Download build artifacts' @@ -427,7 +429,7 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Install solc run: | @@ -459,10 +461,10 @@ jobs: enable-rust: 'true' enable-pnpm: 'false' - - name: Install Rust 1.86.0 + - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -475,7 +477,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm uses: pnpm/action-setup@v4 @@ -541,7 +543,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm uses: pnpm/action-setup@v4 @@ -654,7 +656,7 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Build support scripts run: cd templates/default && cargo build --locked --bin e3-support-scripts-dev - name: Verify build artifacts @@ -679,7 +681,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: ${{ env.NODE_VERSION }} - name: Install pnpm uses: pnpm/action-setup@v4 @@ -699,7 +701,7 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} targets: wasm32-unknown-unknown - name: Install node dependencies @@ -735,13 +737,13 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: ${{ env.NODE_VERSION }} - name: Install pnpm uses: pnpm/action-setup@v4 - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Install node dependencies run: pnpm install --frozen-lockfile - name: Download enclave binary @@ -787,7 +789,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: ${{ env.NODE_VERSION }} - name: Install pnpm uses: pnpm/action-setup@v4 @@ -797,7 +799,7 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.86.0 + toolchain: ${{ env.RUST_TOOLCHAIN }} - name: Download enclave binary uses: actions/download-artifact@v4 with: From 87164a47aafedb53eb8b871d730aac092ac7979d Mon Sep 17 00:00:00 2001 From: Cedoor Date: Mon, 15 Dec 2025 15:12:59 +0100 Subject: [PATCH 4/6] ci: improve rust cache dependencies --- .github/actions/cache-dependencies/action.yml | 36 +--- .github/workflows/ci.yml | 161 +++++++----------- 2 files changed, 65 insertions(+), 132 deletions(-) diff --git a/.github/actions/cache-dependencies/action.yml b/.github/actions/cache-dependencies/action.yml index 099626a4bb..7e8c3cac3f 100644 --- a/.github/actions/cache-dependencies/action.yml +++ b/.github/actions/cache-dependencies/action.yml @@ -1,45 +1,25 @@ -name: Cache dependencies -description: Cache Rust (cargo + target) and pnpm store +name: Cache Rust dependencies +description: Cache Rust dependencies (cargo registry/git + target) inputs: - enable-rust: - description: Whether to cache Rust dependencies + cargo-lock-path: + description: Cargo.lock path (or glob) used to invalidate the cache key required: false - default: 'true' + default: Cargo.lock rust-target-path: - description: Path to Rust target dir to cache (when enable-rust is true) + description: Path to Rust target dir to cache required: false default: target/ - enable-pnpm: - description: Whether to cache pnpm store - required: false - default: 'true' runs: using: composite steps: - name: Cache Rust dependencies - if: ${{ inputs.enable-rust == 'true' }} uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git ${{ inputs.rust-target-path }} - key: rust-deps-${{ hashFiles('**/Cargo.lock') }} - restore-keys: rust-deps- - - - name: Get pnpm store directory - if: ${{ inputs.enable-pnpm == 'true' }} - id: pnpm-cache - shell: bash - run: echo "STORE_PATH=$(pnpm store path)" >> "$GITHUB_OUTPUT" - - - name: Setup pnpm cache - if: ${{ inputs.enable-pnpm == 'true' }} - uses: actions/cache@v4 - with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + key: rust-deps-${{ inputs.rust-target-path }}-${{ hashFiles(inputs.cargo-lock-path) }} + restore-keys: rust-deps-${{ inputs.rust-target-path }}- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3ed2363fd..ac0bca1e07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,9 +38,6 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Install Rust uses: dtolnay/rust-toolchain@stable @@ -57,20 +54,16 @@ jobs: && sudo apt-get update -y \ && sudo apt-get install -y solc + - name: pnpm-setup + uses: pnpm/action-setup@v4 + # We need to setup node in order to compile the hardhat contracts to get the artifacts - name: 'Setup node' uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - - name: pnpm-setup - uses: pnpm/action-setup@v4 - - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'false' - enable-pnpm: 'true' + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -88,9 +81,6 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Install Rust uses: dtolnay/rust-toolchain@stable @@ -107,20 +97,16 @@ jobs: && sudo apt-get update -y \ && sudo apt-get install -y solc + - name: pnpm-setup + uses: pnpm/action-setup@v4 + # We need to setup node in order to compile the hardhat contracts to get the artifacts - name: 'Setup node' uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - - name: pnpm-setup - uses: pnpm/action-setup@v4 - - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'false' - enable-pnpm: 'true' + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -216,9 +202,6 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Install Rust uses: dtolnay/rust-toolchain@stable @@ -226,19 +209,15 @@ jobs: toolchain: ${{ env.RUST_TOOLCHAIN }} target: wasm32-unknown-unknown - - name: 'Setup node' - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies + - name: 'Setup node' + uses: actions/setup-node@v4 with: - enable-rust: 'false' - enable-pnpm: 'true' + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: 'Install the dependencies' run: 'pnpm install --frozen-lockfile' @@ -264,12 +243,14 @@ jobs: steps: - name: 'Check out the repo' uses: 'actions/checkout@v4' + - name: pnpm-setup + uses: pnpm/action-setup@v4 - name: 'Setup node' uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - name: pnpm-setup - uses: pnpm/action-setup@v4 + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: 'Run network tests' run: 'pnpm test:integration net --no-prebuild' - name: 'Add test summary' @@ -285,28 +266,21 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Install Rust uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ env.RUST_TOOLCHAIN }} - - name: 'Setup node' - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: pnpm-setup uses: pnpm/action-setup@v4 - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies + - name: 'Setup node' + uses: actions/setup-node@v4 with: - enable-rust: 'false' - enable-pnpm: 'true' + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Install Nargo uses: noir-lang/noirup@v0.1.4 @@ -358,18 +332,14 @@ jobs: steps: - name: 'Check out the repo' uses: 'actions/checkout@v4' + - name: pnpm-setup + uses: pnpm/action-setup@v4 - name: 'Setup node' uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - name: pnpm-setup - uses: pnpm/action-setup@v4 - - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'false' - enable-pnpm: 'true' + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Install Rust uses: dtolnay/rust-toolchain@stable @@ -422,9 +392,8 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies with: - enable-rust: 'true' + cargo-lock-path: templates/default/Cargo.lock rust-target-path: templates/default/target/ - enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable @@ -458,8 +427,8 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies with: - enable-rust: 'true' - enable-pnpm: 'false' + cargo-lock-path: examples/CRISP/Cargo.lock + rust-target-path: examples/CRISP/target/ - name: Install Rust uses: dtolnay/rust-toolchain@stable @@ -474,19 +443,15 @@ jobs: with: toolchain: v1.0.0-beta.15 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Setup pnpm uses: pnpm/action-setup@v4 - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies + - name: Setup Node.js + uses: actions/setup-node@v4 with: - enable-rust: 'false' - enable-pnpm: 'true' + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Install dependencies working-directory: . @@ -526,9 +491,6 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Prepare test environment run: | @@ -540,13 +502,15 @@ jobs: sudo chown -R $USER_UID:$USER_GID $GITHUB_WORKSPACE/examples/CRISP/.cache-synpress sudo chmod -R 777 $GITHUB_WORKSPACE/examples/CRISP/.cache-synpress + - name: Setup pnpm + uses: pnpm/action-setup@v4 + - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - - name: Setup pnpm - uses: pnpm/action-setup@v4 + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml # We must install foundry in order to be able to test anvil - name: Install Foundry @@ -567,12 +531,6 @@ jobs: run: | sudo wget -qO- https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64.tar.gz | sudo tar xz -C /usr/local/bin --transform='s|yq_linux_amd64|yq|' --no-same-owner - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'false' - enable-pnpm: 'true' - - name: Install dependencies working-directory: . run: | @@ -650,9 +608,8 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies with: - enable-rust: 'true' + cargo-lock-path: templates/default/Cargo.lock rust-target-path: templates/default/target/ - enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: @@ -678,25 +635,18 @@ jobs: with: submodules: recursive - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Install pnpm uses: pnpm/action-setup@v4 - - name: Cache pnpm store - uses: ./.github/actions/cache-dependencies + - name: Setup Node.js + uses: actions/setup-node@v4 with: - enable-rust: 'false' - enable-pnpm: 'true' + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - enable-rust: 'true' - enable-pnpm: 'false' - name: Setup Rust uses: dtolnay/rust-toolchain@stable @@ -734,12 +684,14 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive + - name: Install pnpm + uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - - name: Install pnpm - uses: pnpm/action-setup@v4 + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: @@ -786,15 +738,16 @@ jobs: runs-on: ubuntu-latest needs: [build_enclave_cli, build_e3_support_dev] steps: - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 10.7.1 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + cache-dependency-path: pnpm-lock.yaml - name: Setup Rust uses: dtolnay/rust-toolchain@stable From 68ff6904772a6f06c4b5278dceba340c35f8fb16 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Mon, 15 Dec 2025 15:34:30 +0100 Subject: [PATCH 5/6] ci: fix cache dependencies action --- .github/actions/cache-dependencies/action.yml | 20 +++++++++++++++++-- .github/workflows/ci.yml | 3 --- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/actions/cache-dependencies/action.yml b/.github/actions/cache-dependencies/action.yml index 7e8c3cac3f..c16c4d0a57 100644 --- a/.github/actions/cache-dependencies/action.yml +++ b/.github/actions/cache-dependencies/action.yml @@ -14,6 +14,22 @@ inputs: runs: using: composite steps: + - name: Compute cache scope + id: cache-key + shell: bash + run: | + target_path='${{ inputs.rust-target-path }}' + target_path="${target_path#./}" + while [[ "$target_path" == */ ]]; do target_path="${target_path%/}"; done + + if command -v sha256sum >/dev/null 2>&1; then + scope="$(printf '%s' "$target_path" | sha256sum | cut -d' ' -f1)" + else + scope="$(printf '%s' "$target_path" | shasum -a 256 | cut -d' ' -f1)" + fi + + echo "scope=$scope" >> "$GITHUB_OUTPUT" + - name: Cache Rust dependencies uses: actions/cache@v4 with: @@ -21,5 +37,5 @@ runs: ~/.cargo/registry ~/.cargo/git ${{ inputs.rust-target-path }} - key: rust-deps-${{ inputs.rust-target-path }}-${{ hashFiles(inputs.cargo-lock-path) }} - restore-keys: rust-deps-${{ inputs.rust-target-path }}- + key: rust-deps-${{ steps.cache-key.outputs.scope }}-${{ hashFiles(inputs.cargo-lock-path) }} + restore-keys: rust-deps-${{ steps.cache-key.outputs.scope }}- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac0bca1e07..0d70c42a55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -391,9 +391,6 @@ jobs: - name: Cache Rust dependencies uses: ./.github/actions/cache-dependencies - with: - cargo-lock-path: templates/default/Cargo.lock - rust-target-path: templates/default/target/ - name: Setup Rust uses: dtolnay/rust-toolchain@stable From 1228976995f7bdb56ab3ff171eaac81eae8a5b81 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Tue, 16 Dec 2025 11:50:30 +0100 Subject: [PATCH 6/6] ci: remove cache from enclave init workflow --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d70c42a55..e1dc7849f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -743,8 +743,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - cache: 'pnpm' - cache-dependency-path: pnpm-lock.yaml - name: Setup Rust uses: dtolnay/rust-toolchain@stable