valence/.github/workflows/ci.yml
AviiNL 1d2d8f888e
New ci (#328)
## Description

Completely re-written the ci build script for more parallelization and
speed.

## Test Plan

1. make/merge a pr
2. watch ci go wroom
3. ?
4. profit
2023-04-28 18:06:05 -07:00

111 lines
3.3 KiB
YAML

name: Rust
on:
pull_request:
push: # Run CI on the main branch after every merge. This is important to fill the GitHub Actions cache in a way that pull requests can see it
branches:
- main
env:
CARGO_TERM_COLOR: always
jobs:
valence-fmt-clippy:
strategy:
fail-fast: true
matrix:
platform: [windows-latest, macos-latest, ubuntu-latest]
style: [default]
rust:
- stable
include:
- style: default
flags: ""
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain and cache
uses: actions-rust-lang/setup-rust-toolchain@v1.4.4
with:
toolchain: "stable"
components: "clippy, rustfmt"
- name: "Copy playground"
run: cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs
- name: Install Dependencies (Linux)
run: sudo apt-get update && sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libclang-dev libgtk-3-dev
if: matrix.platform == 'ubuntu-latest'
- name: cargo fmt
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace ${{ matrix.flags }}--no-deps --all-features --all-targets -- -D warnings
valence-tests:
strategy:
fail-fast: true
matrix:
platform: [windows-latest, macos-latest, ubuntu-latest]
style: [default]
rust:
- stable
include:
- style: default
flags: ""
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain and cache
uses: actions-rust-lang/setup-rust-toolchain@v1.4.4
- name: "Copy playground"
run: cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs
- name: Install Dependencies (Linux)
run: sudo apt-get update && sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libclang-dev libgtk-3-dev
if: matrix.platform == 'ubuntu-latest'
- name: Run tests
run: cargo test --workspace ${{ matrix.flags }}--all-features --all-targets
- name: Run valence_nbt tests without preserve_order feature
run: cargo test -p valence_nbt --all-targets
valence-docs:
strategy:
fail-fast: true
matrix:
platform: [windows-latest, macos-latest, ubuntu-latest]
style: [default]
rust:
- stable
include:
- style: default
flags: ""
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain and cache
uses: actions-rust-lang/setup-rust-toolchain@v1.4.4
- name: "Copy playground"
run: cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs
- name: Install Dependencies (Linux)
run: sudo apt-get update && sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libclang-dev libgtk-3-dev
if: matrix.platform == 'ubuntu-latest'
- name: Validate documentation
run: cargo doc --workspace ${{ matrix.flags }}--no-deps --all-features --document-private-items