-
Notifications
You must be signed in to change notification settings - Fork 65
129 lines (125 loc) · 4.27 KB
/
ci.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: CI
on:
# Run on pull requests (PR)
pull_request:
types:
# New PR
- opened
# Change pushed to source branch
- synchronize
# PR reopened
- reopened
# PR converted from Draft to Ready For Review
- ready_for_review
# Run on any new change on the main branch (CI)
push:
branches:
- main
# Enable manual trigger via GitHub UI
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
toolchain: [stable, nightly]
os: [windows-latest, ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.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 }}
components: rustfmt, clippy
override: true
- name: Install Bevy dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libxcb-shape0-dev libxcb-xfixes0-dev
if: runner.os == 'linux'
- name: Install graphic drivers
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
if: runner.os == 'linux'
- name: Build & run tests (slim)
run: cargo test --no-default-features
env:
CARGO_INCREMENTAL: 0
- name: Build & run tests (ui)
run: cargo test --no-default-features --features="bevy_ui"
env:
CARGO_INCREMENTAL: 1
- name: Build & run tests (sprite)
run: cargo test --no-default-features --features="bevy_sprite"
env:
CARGO_INCREMENTAL: 1
- name: Build & run tests (text)
run: cargo test --no-default-features --features="bevy_text"
env:
CARGO_INCREMENTAL: 1
- name: Build & run tests (asset)
run: cargo test --no-default-features --features="bevy_asset"
env:
CARGO_INCREMENTAL: 1
- name: Build & run tests (all)
run: cargo test --all-features
env:
CARGO_INCREMENTAL: 1
coverage:
name: Coverage
runs-on: ubuntu-latest
permissions:
actions: read
checks: write
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-build-stable-${{ hashFiles('**/Cargo.toml') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Install Bevy dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libxcb-shape0-dev libxcb-xfixes0-dev
if: runner.os == 'linux'
- name: Install graphic drivers
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
if: runner.os == 'linux'
- name: Install cargo-tarpaulin
run: |
RUST_BACKTRACE=1 cargo install --version 0.21.0 cargo-tarpaulin
- name: Generate code coverage
run: |
RUST_BACKTRACE=1 cargo tarpaulin --all-features --verbose --timeout 120 --out Lcov --workspace
ls -la
- name: Upload code coverage
uses: coverallsapp/github-action@master
with:
path-to-lcov: 'lcov.info'
github-token: ${{ secrets.GITHUB_TOKEN }}