name: CI — Oxide on: push: branches: [master, 3.3, 3.4] pull_request: branches: [master, 3.3, 3.4] 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 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 }}-${{ 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=// || \ npx turbo run test --filter=// || \ npx turbo run test --filter=// || exit 1 - name: Lint run: npx turbo run style --filter=//