Skip to content

Commit

Permalink
Merge branch 'v0.6' into improve-debug-build-time
Browse files Browse the repository at this point in the history
  • Loading branch information
naomijub authored Apr 6, 2024
2 parents c023b28 + b6401c5 commit f5f39b2
Show file tree
Hide file tree
Showing 10 changed files with 411 additions and 166 deletions.
5 changes: 5 additions & 0 deletions .github/example-run/platformer.ron
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(
exit_after: Some(1000),
frame_time: Some(0.03),
screenshot_frames: [200],
)
5 changes: 5 additions & 0 deletions .github/example-run/spawn_prefab_with_physics.ron
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(
exit_after: Some(1000),
frame_time: Some(0.03),
screenshot_frames: [101],
)
12 changes: 6 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ jobs:
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
key: ${{ runner.os }}-cargo_${{ hashFiles('**/Cargo.toml') }}
- name: Install stable@stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install Dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev
- name: Run cargo test
run: cargo test --workspace --no-default-features --release
run: cargo test --workspace --no-default-features --profile=ci

test_all:
name: Test all features
Expand All @@ -66,13 +66,13 @@ jobs:
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
key: ${{ runner.os }}-cargo_${{ hashFiles('**/Cargo.toml') }}
- name: Install stable@stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install Dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev
- name: Run cargo test
run: cargo test --workspace --all-features --release
run: cargo test --workspace --all-features --profile=ci

test_all_macos:
strategy:
Expand All @@ -97,7 +97,7 @@ jobs:
- name: Install stable@stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run cargo test
run: cargo test --workspace --all-features --release
run: cargo test --workspace --all-features --profile=ci

# Run cargo clippy -- -D warnings
clippy_check:
Expand All @@ -116,7 +116,7 @@ jobs:
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.toml') }}
key: ${{ runner.os }}-cargo_${{ hashFiles('**/Cargo.toml') }}
- name: Install stable@stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
Expand Down
159 changes: 159 additions & 0 deletions .github/workflows/example_validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: example-run

on:
pull_request:
branches:
- main
- "v*"
push:
branches:
- main

permissions:
contents: write

env:
CARGO_TERM_COLOR: always
NIGHTLY_TOOLCHAIN: nightly

jobs:

run-platformer-example-linux:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Install Bevy dependencies
run: |
sudo apt-get update;
DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -yq \
libasound2-dev libudev-dev libxkbcommon-x11-0 libwayland-dev;
- name: install xvfb, llvmpipe and lavapipe
run: |
sudo apt-get update -y -qq
sudo add-apt-repository ppa:kisak/turtle -y
sudo apt-get update
sudo apt install -y xvfb libegl1-mesa libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo_${{ hashFiles('**/Cargo.toml') }}
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
target: x86_64-unknown-linux-gnu
- name: Build bevy
# this uses the same command as when running the example to ensure build is reused
run: CARGO_PROFILE_RELEASE_DEBUG=true TRACE_CHROME=trace-platformer.json CI_TESTING_CONFIG=.github/example-run/platformer.ron cargo +nightly build --example platformer --profile=ci --features "bevy_xpbd_3d,bevy/bevy_ci_testing,bevy/trace_chrome,bevy/trace,backtrace"
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-C debuginfo=0"
- name: Run examples
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-C debuginfo=0"
run: |
example_name=`basename plaformer.ron`
echo -n $example_name > last_example_run
echo "running platformer - "`date`
time CARGO_PROFILE_RELEASE_DEBUG=true TRACE_CHROME=trace-platformer.json CI_TESTING_CONFIG=.github/example-run/platformer.ron xvfb-run cargo +nightly run --profile=ci --example platformer --features "backtrace,bevy_xpbd_3d,bevy/bevy_ci_testing,bevy/trace_chrome,bevy/trace"
sleep 10
if [ `find ./ -maxdepth 1 -name 'screenshot-*.png' -print -quit` ]; then
mkdir screenshots-platformer
mv screenshot-*.png screenshots-platformer/
fi
mkdir traces && mv trace*.json traces/
mkdir screenshots && mv screenshots-* screenshots/
- name: save traces
uses: actions/upload-artifact@v4
with:
name: example-traces-linux-platformer-${{ steps.date.outputs.date }}
path: traces
- name: save screenshots
uses: actions/upload-artifact@v4
with:
name: screenshots-linux-platformer-${{ steps.date.outputs.date }}
path: screenshots
- uses: actions/upload-artifact@v4
if: ${{ failure() && github.event_name == 'pull_request' }}
with:
name: example-run-linux-platformer-${{ steps.date.outputs.date }}
path: example-run/

run-spawn_prefab_with_physics-example-linux:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Install Bevy dependencies
run: |
sudo apt-get update;
DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -yq \
libasound2-dev libudev-dev libxkbcommon-x11-0 libwayland-dev;
- name: install xvfb, llvmpipe and lavapipe
run: |
sudo apt-get update -y -qq
sudo add-apt-repository ppa:kisak/turtle -y
sudo apt-get update
sudo apt install -y xvfb libegl1-mesa libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo_${{ hashFiles('**/Cargo.toml') }}
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
target: x86_64-unknown-linux-gnu
- name: Build bevy
# this uses the same command as when running the example to ensure build is reused
run: TRACE_CHROME=trace-spawn_prefab_with_physics.json CI_TESTING_CONFIG=.github/example-run/spawn_prefab_with_physics.ron cargo +nightly build --example spawn_prefab_with_physics --profile=ci --features "bevy_xpbd_3d,bevy/bevy_ci_testing,bevy/trace_chrome,bevy/trace"
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-C debuginfo=0"
- name: Run examples
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-C debuginfo=0"
run: |
example_name=`basename plaformer.ron`
echo -n $example_name > last_example_run
echo "running spawn_prefab_with_physics - "`date`
time TRACE_CHROME=trace-spawn_prefab_with_physics.json CI_TESTING_CONFIG=.github/example-run/spawn_prefab_with_physics.ron xvfb-run cargo +nightly run --profile=ci --example spawn_prefab_with_physics --features "bevy_xpbd_3d,bevy/bevy_ci_testing,bevy/trace_chrome,bevy/trace"
sleep 10
if [ `find ./ -maxdepth 1 -name 'screenshot-*.png' -print -quit` ]; then
mkdir screenshots-spawn_prefab_with_physics
mv screenshot-*.png screenshots-spawn_prefab_with_physics/
fi
mkdir traces && mv trace*.json traces/
mkdir screenshots && mv screenshots-* screenshots/
- name: save traces
uses: actions/upload-artifact@v4
with:
name: example-traces-linux-spawn-prefab-${{ steps.date.outputs.date }}
path: traces
- name: save screenshots
uses: actions/upload-artifact@v4
with:
name: screenshots-linux-spawn-prefab-${{ steps.date.outputs.date }}
path: screenshots
- uses: actions/upload-artifact@v4
if: ${{ failure() && github.event_name == 'pull_request' }}
with:
name: example-run-linux-spawn-prefab-${{ steps.date.outputs.date }}
path: example-run/
Loading

0 comments on commit f5f39b2

Please sign in to comment.