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