* cache the `oxide` targets
This will cache the oxide related build files to hopefully minimize the
amount of Rust compiling.
* tmp: drop turbo
* cache `./oxide/target/`
Thanks @thecrypticace!
* no need to cache `oxide` files
This will already be cached by GitHub actions. This should save us many
GBs on Vercel.com and Rust (or Cargo) is way better in using existing
cached information so this mix of caches between Turbo and GitHub
actions is kind of nice.
* Revert "tmp: drop turbo"
This reverts commit 22761d3a66.
* improve caching for integration tests and insiders release
72 lines
1.8 KiB
YAML
72 lines
1.8 KiB
YAML
name: CI — Oxide
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CI: true
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
CACHE_PREFIX: oxide
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [18]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- name: Cache node_modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: ${{ runner.os }}-${{ matrix.node-version }}-${{ env.CACHE_PREFIX }}-node_modules-${{ hashFiles('**/package-lock.json') }}
|
|
|
|
# Cargo already skips downloading dependencies if they already exist
|
|
- name: Cache cargo
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
# Cache the `oxide` Rust build
|
|
- name: Cache oxide build
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./oxide/target/
|
|
./oxide/crates/node/*.node
|
|
./oxide/crates/node/index.js
|
|
./oxide/crates/node/index.d.ts
|
|
key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }}
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Build Tailwind CSS
|
|
run: npx turbo run build --filter=//
|
|
|
|
- name: Test
|
|
run: npx turbo run test --filter=//
|
|
|
|
- name: Lint
|
|
run: npx turbo run style --filter=//
|