aboutsummaryrefslogtreecommitdiff
path: root/.github/actions/setup-rust
diff options
context:
space:
mode:
Diffstat (limited to '.github/actions/setup-rust')
-rw-r--r--.github/actions/setup-rust/action.yaml52
1 files changed, 52 insertions, 0 deletions
diff --git a/.github/actions/setup-rust/action.yaml b/.github/actions/setup-rust/action.yaml
new file mode 100644
index 0000000..8cf9997
--- /dev/null
+++ b/.github/actions/setup-rust/action.yaml
@@ -0,0 +1,52 @@
+name: Setup Rust
+description: Setup Rust
+inputs:
+ target:
+ description: toolchain target triple
+ 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:
+ target: ${{ inputs.target }}
+ 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.target }}
+
+ - name: Cargo config.toml
+ shell: bash
+ run: echo '{}' | npx -y mustache - .cargo/config.toml.mustache .cargo/config.toml
+
+ - name: Restore cached Prisma codegen
+ id: cache-prisma-restore
+ uses: actions/cache/restore@v3
+ with:
+ key: prisma-1-${{ runner.os }}-${{ hashFiles('./core/prisma/*', './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