refactor(lambda-rs): add higher level implementations to rendering types #394
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: compile & test lambda-rs (wgpu) | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| build_and_test: | |
| name: Build lambda-rs on ${{ matrix.os }} with features ${{ matrix.features }}. | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| rustup-toolchain: "stable" | |
| features: "lambda-rs/with-vulkan" | |
| - os: windows-latest | |
| rustup-toolchain: "stable" | |
| features: "lambda-rs/with-dx12" | |
| - os: macos-latest | |
| rustup-toolchain: "stable" | |
| features: "lambda-rs/with-metal" | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Cache cargo builds | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run the projects setup. | |
| run: ./scripts/setup.sh --within-ci true | |
| - name: Install Linux deps for winit/wgpu | |
| if: ${{ matrix.os == 'ubuntu-latest' }} | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| pkg-config libx11-dev libxcb1-dev libxcb-render0-dev \ | |
| libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev \ | |
| libwayland-dev libudev-dev \ | |
| libvulkan-dev libvulkan1 mesa-vulkan-drivers vulkan-tools | |
| - name: Configure Vulkan (Ubuntu) | |
| if: ${{ matrix.os == 'ubuntu-latest' }} | |
| run: | | |
| echo "WGPU_BACKEND=vulkan" >> "$GITHUB_ENV" | |
| # Prefer Mesa's software Vulkan (lavapipe) to ensure headless availability | |
| echo "VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" >> "$GITHUB_ENV" | |
| vulkaninfo --summary || true | |
| # Windows runners already include the required toolchain for DX12 builds. | |
| - name: Obtain rust toolchain for ${{ matrix.rustup-toolchain }} | |
| run: | | |
| rustup toolchain install ${{ matrix.rustup-toolchain }} | |
| rustup default ${{ matrix.rustup-toolchain }} | |
| - name: Check formatting | |
| run: | | |
| rustup component add rustfmt --toolchain nightly-2025-09-26 | |
| cargo +nightly-2025-09-26 fmt --all --check | |
| - name: Build workspace | |
| run: cargo build --workspace --features ${{ matrix.features }} | |
| - name: Build examples (lambda-rs) | |
| run: cargo build -p lambda-rs --examples --features ${{ matrix.features }} | |
| - name: Test workspace | |
| run: cargo test --workspace --features ${{ matrix.features }} | |
| - uses: actions/setup-ruby@v1 | |
| - name: Send Webhook Notification for build status. | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| env: | |
| JOB_STATUS: ${{ job.status }} | |
| WEBHOOK_URL: ${{ secrets.LAMBDA_BUILD_WEBHOOK }} | |
| HOOK_OS_NAME: ${{ runner.os }} | |
| WORKFLOW_NAME: ${{ github.workflow }} | |
| JOB_ID: ${{ github.job }} | |
| run: | | |
| git clone https://github.com/dhinakg/github-actions-discord-webhook.git webhook | |
| bash webhook/send.sh $JOB_STATUS $WEBHOOK_URL | |
| shell: bash |