Files
spacedrive/.github/actions/setup-rust/action.yaml
2023-08-16 21:01:39 +00:00

49 lines
1.4 KiB
YAML

name: Setup Rust and Prisma
description: Setup Rust and Prisma
inputs:
targets:
description: Comma-separated list of target triples to install for this toolchain
required: false
save-cache:
description: Whether to save the Rust cache
required: false
default: 'false'
runs:
using: 'composite'
steps:
- name: Install Rust
id: toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ inputs.targets }}
toolchain: stable
components: clippy, rustfmt
- name: Cache Rust Dependencies
uses: Swatinem/rust-cache@v2
with:
save-if: ${{ inputs.save-cache }}
prefix-key: 'v0-rust-deps'
shared-key: ${{ inputs.targets }}
- name: Restore cached Prisma codegen
id: cache-prisma-restore
uses: actions/cache/restore@v3
with:
key: prisma-1-${{ runner.os }}-${{ hashFiles('./core/prisma/*', './crates/sync-generator/*', './Cargo.toml') }}
path: crates/prisma/src/**/*.rs
- name: Generate Prisma client
working-directory: core
if: ${{ steps.cache-prisma-restore.outputs.cache-hit != 'true' }}
shell: bash
run: cargo prisma generate
- name: Save Prisma codegen
id: cache-prisma-save
if: ${{ inputs.save-cache == 'true' }}
uses: actions/cache/save@v3
with:
key: ${{ steps.cache-prisma-restore.outputs.cache-primary-key }}
path: crates/prisma/src/**/*.rs