2020-08-24 18:16:52 +00:00
name : CI
2020-05-29 03:48:18 +00:00
on :
pull_request :
2021-02-19 21:15:29 +00:00
push :
2021-06-22 07:59:37 +00:00
branches-ignore :
- 'dependabot/**'
- staging-squash-merge.tmp
2020-05-29 03:48:18 +00:00
env :
CARGO_TERM_COLOR : always
jobs :
build :
2020-08-26 18:57:35 +00:00
strategy :
matrix :
2021-12-24 01:11:51 +00:00
# TODO: re-enable nightly checks
# toolchain: [stable, nightly]
toolchain : [ stable]
2021-01-27 01:11:38 +00:00
os : [ windows-latest, ubuntu-latest, macos-latest]
2020-09-03 01:10:42 +00:00
exclude :
2021-01-27 01:11:38 +00:00
- os : macos-latest
2020-09-03 01:10:42 +00:00
toolchain : nightly
2021-01-27 01:11:38 +00:00
- os : windows-latest
2020-11-02 20:49:31 +00:00
toolchain : nightly
2020-08-27 19:24:02 +00:00
runs-on : ${{ matrix.os }}
2020-05-29 03:48:18 +00:00
steps :
2020-05-29 05:44:04 +00:00
- uses : actions/checkout@v2
2021-07-27 02:01:11 +00:00
- uses : actions/cache@v2
with :
path : |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key : ${{ runner.os }}-cargo-build-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.toml') }}
2020-06-08 08:05:56 +00:00
- uses : actions-rs/toolchain@v1
with :
2020-08-26 18:57:35 +00:00
toolchain : ${{ matrix.toolchain }}
2020-06-08 08:05:56 +00:00
override : true
2021-01-27 01:11:38 +00:00
- 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
2020-08-26 18:57:35 +00:00
run : cargo test --workspace
env :
CARGO_INCREMENTAL : 0
RUSTFLAGS : "-C debuginfo=0 -D warnings"
2021-07-27 02:01:11 +00:00
ci :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : actions/cache@v2
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
2021-12-09 20:14:00 +00:00
run : sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
2021-07-27 02:01:11 +00:00
- name : CI job
# See tools/ci/src/main.rs for the commands this runs
run : cargo run -p ci
2021-08-26 00:40:56 +00:00
check-benches :
runs-on : ubuntu-latest
needs : ci
steps :
- uses : actions/checkout@v2
- uses : actions/cache@v2
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
2020-10-22 01:15:14 +00:00
build-wasm :
strategy :
matrix :
2021-12-24 01:11:51 +00:00
# TODO: re-enable nightly checks
# toolchain: [stable, nightly]
toolchain : [ stable]
2021-01-27 01:11:38 +00:00
os : [ ubuntu-latest]
2020-10-22 01:15:14 +00:00
runs-on : ${{ matrix.os }}
steps :
- uses : actions/checkout@v2
2021-07-27 02:01:11 +00:00
- uses : actions/cache@v2
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') }}
2020-10-22 01:15:14 +00:00
- uses : actions-rs/toolchain@v1
with :
toolchain : ${{ matrix.toolchain }}
target : wasm32-unknown-unknown
override : true
2020-09-21 22:47:38 +00:00
- name : Check wasm
uses : actions-rs/cargo@v1
with :
command : check
2020-10-22 01:15:14 +00:00
args : --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf
2020-09-21 22:47:38 +00:00
2020-11-03 19:32:48 +00:00
build-android :
2020-08-26 18:57:35 +00:00
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
2021-10-27 00:12:14 +00:00
- uses : actions-rs/toolchain@v1
with :
toolchain : stable
2021-07-27 02:01:11 +00:00
- uses : actions/cache@v2
with :
path : |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key : ${{ runner.os }}-cargo-build-android-${{ hashFiles('**/Cargo.toml') }}
2021-07-26 00:22:42 +00:00
- name : Uninstall android-31
run : $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --uninstall "platforms;android-31"
2021-01-27 01:11:38 +00:00
- name : Install Android targets
run : rustup target add aarch64-linux-android armv7-linux-androideabi
- name : Install Cargo APK
2021-07-27 02:01:11 +00:00
run : cargo install --force cargo-apk
2021-01-27 01:11:38 +00:00
- name : Build APK
run : cargo apk build --example android
2021-02-22 04:50:05 +00:00
markdownlint :
runs-on : ubuntu-latest
2021-07-27 02:01:11 +00:00
needs : check-missing-examples-in-docs
if : always()
2021-02-22 04:50:05 +00:00
steps :
- uses : actions/checkout@v2
with :
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth : 0
- name : Run Markdown Lint
2021-06-01 01:01:20 +00:00
uses : docker://ghcr.io/github/super-linter:slim-v4
2021-02-22 04:50:05 +00:00
env :
VALIDATE_ALL_CODEBASE : false
VALIDATE_MARKDOWN : true
2021-04-15 19:29:47 +00:00
DEFAULT_BRANCH : main
2021-02-22 04:50:05 +00:00
# Not needed here as only one Linter is used.
#GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2021-04-14 21:40:36 +00:00
2021-05-02 20:22:32 +00:00
check-markdown-links :
runs-on : ubuntu-latest
2021-07-27 02:01:11 +00:00
needs : markdownlint
if : always()
2021-05-02 20:22:32 +00:00
steps :
- uses : actions/checkout@v2
2021-07-27 02:01:11 +00:00
- 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
2021-05-02 20:22:32 +00:00
with :
use-quiet-mode : 'yes'
use-verbose-mode : 'yes'
config-file : '.github/linters/markdown-link-check.json'
2021-07-27 02:01:11 +00:00
- 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
2021-05-02 20:22:32 +00:00
2021-04-14 21:40:36 +00:00
run-examples :
runs-on : ubuntu-latest
steps :
2021-12-17 23:58:09 +00:00
- name : Install Bevy dependencies
2021-04-14 21:40:36 +00:00
run : |
sudo apt-get update;
DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -yq \
2021-12-17 23:58:09 +00:00
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
2021-04-14 21:40:36 +00:00
- uses : actions/checkout@v2
2021-07-27 02:01:11 +00:00
- uses : actions/cache@v2
with :
path : |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key : ${{ runner.os }}-cargo-run-examples-${{ hashFiles('**/Cargo.toml') }}
2021-04-14 21:40:36 +00:00
- uses : actions-rs/toolchain@v1
with :
toolchain : stable
- name : Build bevy
run : |
2021-12-17 23:58:09 +00:00
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"
2021-04-14 21:40:36 +00:00
- name : Run examples
run : |
for example in .github/example-run/*.ron; do
example_name=`basename $example .ron`
echo "running $example_name - "`date`
2021-12-17 23:58:09 +00:00
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"
2021-04-14 21:40:36 +00:00
sleep 10
done
2021-12-17 23:58:09 +00:00
zip traces.zip trace*.json
- name : save traces
uses : actions/upload-artifact@v1
with :
name : example-traces.zip
path : traces.zip
2021-04-22 19:53:44 +00:00
2021-04-27 02:17:12 +00:00
check-doc :
2021-04-22 19:53:44 +00:00
runs-on : ubuntu-latest
2021-07-27 02:01:11 +00:00
needs : check-markdown-links
if : always()
2021-04-22 19:53:44 +00:00
steps :
- uses : actions/checkout@v2
2021-10-27 00:12:14 +00:00
- uses : actions-rs/toolchain@v1
with :
toolchain : stable
2021-04-22 19:53:44 +00:00
- name : Install alsa and udev
2021-12-09 20:14:00 +00:00
run : sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
2021-04-22 19:53:44 +00:00
if : runner.os == 'linux'
- name : Installs cargo-deadlinks
2021-07-27 02:01:11 +00:00
run : cargo install --force cargo-deadlinks
2021-04-27 02:17:12 +00:00
- name : Build and check doc
2021-12-18 00:09:23 +00:00
run : RUSTDOCFLAGS='-D warnings' cargo doc --workspace --all-features --no-deps
2021-04-27 02:17:12 +00:00
- name : Checks dead links
run : cargo deadlinks --dir target/doc/bevy
2021-04-22 19:53:44 +00:00
continue-on-error : true
2021-07-27 02:01:11 +00:00
2021-05-30 18:14:58 +00:00
check-missing-examples-in-docs :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- 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 : '[]'
2021-12-24 01:11:51 +00:00
# TODO: re-enable nightly checks
# check-unused-dependencies:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/cache@v2
# 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