![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/cache/releases">actions/cache's releases</a>.</em></p> <blockquote> <h2>v3.0.0</h2> <ul> <li> <p>This change adds a minimum runner version(node12 -> node16), which can break users using an out-of-date/fork of the runner. This would be most commonly affecting users on GHES 3.3 or before, as those runners do not support node16 actions and they can use actions from github.com via <a href="https://docs.github.com/en/enterprise-server@3.0/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect">github connect</a> or manually copying the repo to their GHES instance.</p> </li> <li> <p>Few dependencies and cache action usage examples have also been updated.</p> </li> </ul> <h2>v2.1.7</h2> <p>Support 10GB cache upload using the latest version <code>1.0.8</code> of <a href="https://www.npmjs.com/package/@actions/cache"><code>@actions/cache</code> </a></p> <h2>v2.1.6</h2> <ul> <li>Catch unhandled "bad file descriptor" errors that sometimes occurs when the cache server returns non-successful response (<a href="https://github-redirect.dependabot.com/actions/cache/pull/596">actions/cache#596</a>)</li> </ul> <h2>v2.1.5</h2> <ul> <li>Fix permissions error seen when extracting caches with GNU tar that were previously created using BSD tar (<a href="https://github-redirect.dependabot.com/actions/cache/issues/527">actions/cache#527</a>)</li> </ul> <h2>v2.1.4</h2> <ul> <li>Make caching more verbose <a href="https://github-redirect.dependabot.com/actions/toolkit/pull/650">#650</a></li> <li>Use GNU tar on macOS if available <a href="https://github-redirect.dependabot.com/actions/toolkit/pull/701">#701</a></li> </ul> <h2>v2.1.3</h2> <ul> <li>Upgrades <code>@actions/core</code> to v1.2.6 for <a href="https://github.com/advisories/GHSA-mfwh-5m23-j46w">CVE-2020-15228</a>. This action was not using the affected methods.</li> <li>Fix error handling in <code>uploadChunk</code> where 400-level errors were not being detected and handled correctly</li> </ul> <h2>v2.1.2</h2> <ul> <li>Adds input to limit the chunk upload size, useful for self-hosted runners with slower upload speeds</li> <li>No-op when executing on GHES</li> </ul> <h2>v2.1.1</h2> <ul> <li>Update <code>@actions/cache</code> package to <code>v1.0.2</code> which allows cache action to use posix format when taring files.</li> </ul> <h2>v2.1.0</h2> <ul> <li>Replaces the <code>http-client</code> with the Azure Storage SDK for NodeJS when downloading cache content from Azure. This should help improve download performance and reliability as the SDK downloads files in 4 MB chunks, which can be parallelized and retried independently</li> <li>Display download progress and speed</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="4b0cf6cc46
"><code>4b0cf6c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/cache/issues/769">#769</a> from actions/users/ashwinsangem/bump_major_version</li> <li><a href="60c606a2b4
"><code>60c606a</code></a> Update licensed files</li> <li><a href="b6e9a919a7
"><code>b6e9a91</code></a> Revert "Updated to the latest version."</li> <li><a href="c842503583
"><code>c842503</code></a> Updated to the latest version.</li> <li><a href="2b7da2a62c
"><code>2b7da2a</code></a> Bumped up to a major version.</li> <li><a href="deae296ab3
"><code>deae296</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/cache/issues/651">#651</a> from magnetikonline/fix-golang-windows-example</li> <li><a href="c7c46bcb6d
"><code>c7c46bc</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/cache/issues/707">#707</a> from duxtland/main</li> <li><a href="6535c5fb5f
"><code>6535c5f</code></a> Regenerated <code>examples.md</code> TOC</li> <li><a href="3fdafa472e
"><code>3fdafa4</code></a> Update GitHub Actions status badge markdown in <code>README.md</code></li> <li><a href="341e6d75d9
"><code>341e6d7</code></a> Merge branch 'actions:main' into fix-golang-windows-example</li> <li>Additional commits viewable in <a href="https://github.com/actions/cache/compare/v2...v3">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
349 lines
12 KiB
YAML
349 lines
12 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches-ignore:
|
|
- 'dependabot/**'
|
|
- staging-squash-merge.tmp
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
toolchain: [stable, nightly]
|
|
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
exclude:
|
|
- os: macos-latest
|
|
toolchain: nightly
|
|
- os: windows-latest
|
|
toolchain: nightly
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-build-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
override: true
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
|
|
if: runner.os == 'linux'
|
|
- name: Build & run tests
|
|
run: cargo test --workspace
|
|
env:
|
|
CARGO_INCREMENTAL: 0
|
|
RUSTFLAGS: "-C debuginfo=0 -D warnings"
|
|
|
|
ci:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-ci-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt, clippy
|
|
override: true
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
|
|
- name: CI job
|
|
# See tools/ci/src/main.rs for the commands this runs
|
|
run: cargo run -p ci -- nonlocal
|
|
|
|
miri:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-ci-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
components: miri
|
|
override: true
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
|
|
- name: CI job
|
|
run: cargo miri test -p bevy_ecs
|
|
env:
|
|
# -Zrandomize-layout makes sure we dont rely on the layout of anything that might change
|
|
RUSTFLAGS: -Zrandomize-layout
|
|
# -Zmiri-disable-isolation is needed because our executor uses `fastrand` which accesses system time.
|
|
# -Zmiri-ignore-leaks is needed because running bevy_ecs tests finds a memory leak but its impossible
|
|
# to track down because allocids are nondeterministic.
|
|
# -Zmiri-tag-raw-pointers is not strictly "necessary" but enables a lot of extra UB checks relating
|
|
# to raw pointer aliasing rules that we should be trying to uphold.
|
|
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-ignore-leaks -Zmiri-tag-raw-pointers
|
|
|
|
check-benches:
|
|
runs-on: ubuntu-latest
|
|
needs: ci
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-check-benches-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
|
|
- name: Check Benches
|
|
run: cd benches && cargo check --benches
|
|
|
|
build-wasm:
|
|
strategy:
|
|
matrix:
|
|
toolchain: [stable, nightly]
|
|
os: [ubuntu-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-build-wasm-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
- name: Check wasm
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
args: --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf
|
|
|
|
build-android:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-build-android-${{ hashFiles('**/Cargo.toml') }}
|
|
- name: Uninstall android-31
|
|
run: $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --uninstall "platforms;android-31"
|
|
- name: Install Android targets
|
|
run: rustup target add aarch64-linux-android armv7-linux-androideabi
|
|
- name: Install Cargo APK
|
|
run: cargo install --force cargo-apk
|
|
- name: Build APK
|
|
run: cargo apk build --example android
|
|
|
|
markdownlint:
|
|
runs-on: ubuntu-latest
|
|
needs: check-missing-examples-in-docs
|
|
if: always()
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
# Full git history is needed to get a proper list of changed files within `super-linter`
|
|
fetch-depth: 0
|
|
- name: Run Markdown Lint
|
|
uses: docker://ghcr.io/github/super-linter:slim-v4
|
|
env:
|
|
VALIDATE_ALL_CODEBASE: false
|
|
VALIDATE_MARKDOWN: true
|
|
DEFAULT_BRANCH: main
|
|
# Not needed here as only one Linter is used.
|
|
#GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
check-markdown-links:
|
|
runs-on: ubuntu-latest
|
|
needs: markdownlint
|
|
if: always()
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: check dead links
|
|
continue-on-error: true
|
|
id: run1
|
|
uses: gaurav-nelson/github-action-markdown-link-check@9710f0fec812ce0a3b98bef4c9d842fc1f39d976
|
|
with:
|
|
use-quiet-mode: 'yes'
|
|
use-verbose-mode: 'yes'
|
|
config-file: '.github/linters/markdown-link-check.json'
|
|
- name: Sleep for 30 seconds
|
|
if: steps.run1.outcome=='failure'
|
|
run: sleep 30s
|
|
shell: bash
|
|
- name: check dead links (retry)
|
|
continue-on-error: true
|
|
id: run2
|
|
if: steps.run1.outcome=='failure'
|
|
uses: gaurav-nelson/github-action-markdown-link-check@9710f0fec812ce0a3b98bef4c9d842fc1f39d976
|
|
with:
|
|
use-quiet-mode: 'yes'
|
|
use-verbose-mode: 'yes'
|
|
config-file: '.github/linters/markdown-link-check.json'
|
|
- name: Sleep for 30 seconds
|
|
if: steps.run2.outcome=='failure'
|
|
run: sleep 30s
|
|
shell: bash
|
|
- name: check dead links (retry 2)
|
|
continue-on-error: true
|
|
id: run3
|
|
if: steps.run2.outcome=='failure'
|
|
uses: gaurav-nelson/github-action-markdown-link-check@9710f0fec812ce0a3b98bef4c9d842fc1f39d976
|
|
with:
|
|
use-quiet-mode: 'yes'
|
|
use-verbose-mode: 'yes'
|
|
config-file: '.github/linters/markdown-link-check.json'
|
|
- name: set the status
|
|
if: always()
|
|
run: |
|
|
if ${{ steps.run1.outcome=='success' || steps.run2.outcome=='success' || steps.run3.outcome=='success' }}; then
|
|
echo success
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
run-examples:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install Bevy dependencies
|
|
run: |
|
|
sudo apt-get update;
|
|
DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -yq \
|
|
libasound2-dev libudev-dev;
|
|
- name: install xvfb, llvmpipe and lavapipe
|
|
run: |
|
|
sudo apt-get update -y -qq
|
|
sudo add-apt-repository ppa:oibaf/graphics-drivers -y
|
|
sudo apt-get update
|
|
sudo apt install -y xvfb libegl1-mesa libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-run-examples-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
- name: Build bevy
|
|
run: |
|
|
cargo build --no-default-features --features "bevy_dynamic_plugin,bevy_gilrs,bevy_gltf,bevy_winit,render,png,hdr,x11,bevy_ci_testing,trace,trace_chrome"
|
|
- name: Run examples
|
|
run: |
|
|
for example in .github/example-run/*.ron; do
|
|
example_name=`basename $example .ron`
|
|
echo "running $example_name - "`date`
|
|
time CI_TESTING_CONFIG=$example xvfb-run cargo run --example $example_name --no-default-features --features "bevy_dynamic_plugin,bevy_gilrs,bevy_gltf,bevy_winit,render,png,hdr,x11,bevy_ci_testing,trace,trace_chrome"
|
|
sleep 10
|
|
done
|
|
zip traces.zip trace*.json
|
|
- name: save traces
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: example-traces.zip
|
|
path: traces.zip
|
|
|
|
check-doc:
|
|
runs-on: ubuntu-latest
|
|
needs: check-markdown-links
|
|
if: always()
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
|
|
if: runner.os == 'linux'
|
|
- name: Installs cargo-deadlinks
|
|
run: cargo install --force cargo-deadlinks
|
|
- name: Build and check doc
|
|
run: RUSTDOCFLAGS='-D warnings' cargo doc --workspace --all-features --no-deps --document-private-items
|
|
- name: Checks dead links
|
|
run: cargo deadlinks --dir target/doc/bevy
|
|
continue-on-error: true
|
|
|
|
check-missing-examples-in-docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Check that examples are present in both README and Cargo
|
|
uses: Weibye/action-internal-link-consistency@1.0.0
|
|
with:
|
|
source: './examples/'
|
|
targets: '[ "./Cargo.toml", "./examples/README.md" ]'
|
|
file-types: '[".rs"]'
|
|
exclude-folders: '["./examples/ios"]'
|
|
exclude-files: '[]'
|
|
|
|
check-unused-dependencies:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-check-unused-dependencies-${{ hashFiles('**/Cargo.toml') }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
override: true
|
|
- name: Installs cargo-udeps
|
|
run: cargo install --force cargo-udeps
|
|
- name: Install alsa and udev
|
|
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
|
|
- name: Run cargo udeps
|
|
run: cargo udeps
|