tensor_frame 0.0.3-alpha

A PyTorch-like tensor library for Rust with CPU, WGPU, and CUDA backends
Documentation
name: CI

on:
  push:
    branches: [ main, develop ]
    on:
      - '**/*.rs'
      - '**/*.sh'
      - '**/*.cu'
      - '**/*.wgsl'
      - 'Cargo.toml'
      - 'Makefile'
      - '.github/workflows/ci.yml'
  pull_request:
    branches: [ main, develop ]
    on:
      - '**/*.rs'
      - '**/*.sh'
      - '**/*.cu'
      - '**/*.wgsl'
      - 'Cargo.toml'
      - 'Makefile'
      - '.github/workflows/ci.yml'

env:
  CARGO_TERM_COLOR: always

jobs:
  setup:
    name: Setup Environment
    runs-on: [self-hosted, gpu-testing]
    outputs:
      cache-key: ${{ steps.cache-key.outputs.key }}
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt

      - name: Cache dependencies
        id: cache-key
        uses: Swatinem/rust-cache@v2

  check-format:
    name: Check Code Format
    needs: setup
    runs-on: [self-hosted, gpu-testing]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2
      - name: Check code format
        run: make fmt-check

  test-cpu:
    name: Run CPU Tests
    needs: setup
    runs-on: [self-hosted, gpu-testing]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2
      - name: Run cpu tests
        run: make test-cpu

  test-wgpu:
    name: Run WGPU Tests
    needs: setup
    runs-on: [self-hosted, gpu-testing]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2
      - name: Run wgpu tests
        run: make test-wgpu

  test-cuda:
    name: Run CUDA Tests
    needs: setup
    runs-on: [self-hosted, gpu-testing]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2
      - name: Run cuda tests
        run: make test-cuda

  check-examples:
    name: Check Examples for Errors
    needs: setup
    runs-on: [self-hosted, gpu-testing]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2
      - name: Check examples
        run: make check-examples