12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- name: CI
- on:
- push:
- branches: [master]
- pull_request:
- branches: [master]
- permissions:
- contents: read
- env:
- CI: true
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
- TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
- jobs:
- build:
- runs-on: ubuntu-latest
- timeout-minutes: 15
- 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 }}-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: Check versions
- run: |
- echo "Node:" `node --version`
- echo "NPM:" `npm --version`
- echo "Rust:" `rustc --version`
- echo "Cargo:" `cargo --version`
- - name: Build Tailwind CSS
- run: npx turbo run build --filter=//
- - name: Test (Node.js)
- run: |
- npx turbo run test --filter=// || \
- npx turbo run test --filter=// || \
- npx turbo run test --filter=// || exit 1
- - name: Test (Rust)
- run: |
- cd ./oxide
- cargo test || \
- cargo test || \
- cargo test || exit 1
- cd -
- - name: Lint
- run: npx turbo run style --filter=//
|