Combine subaction.bin files into subaction.html files #46
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
name: Testing | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
# Cancel already running jobs | |
concurrency: | |
group: testing_${{ github.head_ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
# By default only linux has a release job. | |
# This is to keep within the 5GB cache limit as rust can use a lot of space! | |
# There are also more limits here but I dont think there is much risk of hitting them: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits | |
# | |
# If you dont use much of the cache feel free to add more release jobs. | |
# If you do hit the cache and there are jobs that are not important for your project remove them or disable caching for them. | |
- name: LinuxRelease | |
runner: ubuntu-latest | |
cargo_profile: --release | |
- name: LinuxDebug | |
runner: ubuntu-latest | |
cargo_profile: | |
- name: WindowsDebug | |
runner: windows-latest | |
cargo_profile: | |
- name: MacOSDebug | |
runner: macos-latest | |
cargo_profile: | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.runner }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# rust-cache already handles all the sane defaults for caching rust builds. | |
# However because we are running seperate debug/release builds in parallel, | |
# we also need to add Debug or Release to the key so that a seperate cache is used. | |
# Otherwise only the last build to finish would get saved to the cache. | |
key: ${{ matrix.name }} | |
- name: Install cargo-hack | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: [email protected] | |
- name: Check `cargo fmt` was run | |
run: | | |
cargo fmt --all -- --check | |
# Need to check fighter_renderer seperately as its not part of the workspace | |
cd fighter_renderer | |
cargo fmt --all -- --check | |
# If your library does not support running under every possible combination of features, | |
# consider using cargo `hack --each-feature` or some other combination of arguments as described at https://github.com/taiki-e/cargo-hack | |
- name: Ensure that the crates and all examples compile and have no warnings under every possible combination of features | |
# some things to explicitly point out: | |
# * clippy also reports rustc warnings and errors | |
# * clippy --all-targets causes clippy to run against tests and examples which it doesnt do by default. | |
run: | | |
cargo hack --feature-powerset clippy --all-targets --locked ${{ matrix.cargo_profile }} -- -D warnings | |
# Need to check fighter_renderer seperately as its not part of the workspace | |
cd fighter_renderer | |
cargo hack --feature-powerset clippy --all-targets --locked ${{ matrix.cargo_profile }} -- -D warnings | |
- name: Ensure that tests pass under every possible combination of features | |
run: | | |
cargo hack --feature-powerset test ${{ matrix.cargo_profile }} |