name: Rust on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: env: CARGO_TERM_COLOR: always jobs: build: name: Build strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Build run: cargo xtask build build-windows: name: Build (Windows) runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: target: wasm32-wasip1 rustflags: "" - name: Install NASM uses: ilammy/setup-nasm@v1 - name: Build run: cargo xtask build test: name: Test strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Test run: cargo xtask test test-windows: name: Test (Windows) runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Test zellij-utils run: cargo test --no-default-features -p zellij-utils --lib - name: Test zellij-server run: cargo test --no-default-features -p zellij-server --lib - name: Test zellij-client run: cargo test --no-default-features -p zellij-client --lib integration-test: name: Integration Test strategy: fail-fast: false matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Install cargo-nextest uses: taiki-e/install-action@v2 with: tool: cargo-nextest - name: Run whole-app integration tests run: cargo xtask integration-test test-no-web: name: Test (No Web) runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Test without web support run: cargo xtask test --no-web assets: name: Check Bundled Assets runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Test xtask run: cargo test -p xtask - name: Check bundled assets run: cargo xtask assets --check format: name: Check Formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: rustflags: "" - name: Check Format run: cargo xtask format --check