feature: part out slab allocator into craballoc #544
Workflow file for this run
This file contains 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
# Happens on push to main, and all PRs | |
name: push | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
# For setup-rust, see https://github.com/moonrepo/setup-rust/issues/22 | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
# Installs `cargo-gpu` and sets the cache directory for subsequent jobs | |
install-cargo-gpu: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
RUST_LOG: debug | |
RUNNER_OS: ${{ matrix.os }} | |
outputs: | |
cachepath-macOS: ${{ steps.cachepathstep.outputs.cachepath-macOS }} | |
cachepath-Linux: ${{ steps.cachepathstep.outputs.cachepath-Linux }} | |
cachepath-Windows: ${{ steps.cachepathstep.outputs.cachepath-Windows }} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cargo | |
# THIS KEY MUST MATCH BELOW | |
key: cargo-cache-1-${{ runner.os }} | |
- uses: moonrepo/setup-rust@v1 | |
- run: rustup default stable | |
- run: rustup update | |
- run: cargo install --git https://github.com/rust-gpu/cargo-gpu cargo-gpu | |
- run: cargo gpu show commitsh | |
- id: cachepathstep | |
run: | | |
CACHE_PATH=`cargo gpu show cache-directory` | |
echo $CACHE_PATH | |
echo "cachepath-$RUNNER_OS=$CACHE_PATH" >> "$GITHUB_OUTPUT" | |
# Builds the shaders and ensures there is no git diff | |
renderling-build-shaders: | |
needs: install-cargo-gpu | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
RUST_LOG: debug | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cargo | |
# THIS KEY MUST MATCH ABOVE | |
key: cargo-cache-1-${{ runner.os }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ needs.install-cargo-gpu.outputs.cachepath-macOS }} | |
${{ needs.install-cargo-gpu.outputs.cachepath-Linux }} | |
${{ needs.install-cargo-gpu.outputs.cachepath-Windows }} | |
key: rust-gpu-cache-0-${{ runner.os }} | |
- uses: moonrepo/setup-rust@v1 | |
- run: cargo gpu show commitsh | |
- run: rm -rf crates/renderling/src/linkage/* crates/renderling/shaders | |
- run: cargo xtask compile-shaders | |
- run: cargo build -p renderling | |
- run: git diff --exit-code --no-ext-diff | |
# BAU clippy lints | |
renderling-clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: moonrepo/setup-rust@v1 | |
- run: cargo clippy | |
# Ensures the example glTF viewer compiles | |
renderling-build-example: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: moonrepo/setup-rust@v1 | |
- run: cargo build -p example | |
# BAU tests | |
renderling-test-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: moonrepo/setup-rust@v1 | |
- run: sudo apt-get -y install mesa-vulkan-drivers libvulkan1 vulkan-tools vulkan-validationlayers | |
- run: cargo test | |
env: | |
RUST_BACKTRACE: 1 | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-output-linux | |
path: test_output/**/*.png | |
renderling-test-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: moonrepo/setup-rust@v1 | |
- run: cargo test | |
env: | |
RUST_BACKTRACE: 1 | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-output-macos | |
path: test_output/**/*.png | |
renderling-test-windows: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: moonrepo/setup-rust@v1 | |
- run: cargo test | |
env: | |
RUST_BACKTRACE: 1 | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-output-windows | |
path: test_output/**/*.png | |
# various linuxes w/ physical gpus | |
# renderling-test-linux-other: | |
# continue-on-error: true | |
# strategy: | |
# matrix: | |
# label: [intel, amd, pi4] | |
# runs-on: ${{ matrix.label }} | |
# steps: | |
# - uses: actions/checkout@v2 | |
# - uses: moonrepo/setup-rust@v1 | |
# with: | |
# cache: false | |
# - uses: Swatinem/rust-cache@v2 | |
# with: | |
# cache-all-crates: "true" | |
# cache-on-failure: "true" | |
# - run: apt-get -q -y update && apt-get -q -y install mesa-vulkan-drivers libvulkan1 vulkan-tools vulkan-validationlayers | |
# - run: cargo test -j 1 -- --test-threads=1 --nocapture | |
# continue-on-error: ${{ matrix.label == 'pi4' }} | |
# env: | |
# RUST_BACKTRACE: 1 | |
# - uses: actions/upload-artifact@v4 | |
# if: always() | |
# with: | |
# name: test-output-${{ matrix.label }} | |
# path: test_output/**/*.png |