NBT Tweaks #1639
Workflow file for this run
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: CI | |
on: | |
pull_request: | |
merge_group: | |
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: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
with: | |
toolchain: "nightly" | |
components: "rustfmt" | |
- name: Copy playground | |
run: cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs | |
- name: cargo fmt | |
run: cargo fmt --all -- --check | |
valence-docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
- 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 | |
- name: Validate documentation | |
run: RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps --all-features --document-private-items | |
typos: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Check for spelling errors | |
uses: crate-ci/[email protected] | |
valence-clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
with: | |
toolchain: "stable" | |
components: "clippy" | |
- 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 | |
- name: Clippy | |
run: cargo clippy --workspace --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: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
- 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 doctests | |
run: cargo test --workspace ${{ matrix.flags }} --all-features --doc | |
- name: Run valence_nbt tests without preserve_order feature | |
run: cargo test -p valence_nbt --all-targets | |
extractor-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Java | |
uses: actions/setup-java@v2 | |
with: | |
distribution: "zulu" | |
java-version: "17" | |
- name: Test Build | |
run: ./gradlew build | |
working-directory: extractor | |
check-depgraph: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Install cargo-depgraph | |
uses: baptiste0928/[email protected] | |
with: | |
crate: cargo-depgraph | |
- name: Install graphviz | |
run: sudo apt update && sudo apt install -y graphviz | |
- name: Generate new depgraph | |
run: cargo depgraph --workspace-only | tred | dot -Tsvg -o assets/depgraph.svg | |
- name: Check depgraph diff | |
run: git diff --exit-code assets/depgraph.svg > assets/depgraph.patch | |
- name: Create comment artifact | |
if: ${{ failure() && github.event_name == 'pull_request' }} | |
run: | | |
mkdir ./bad-depgraph | |
echo ${{ github.event.number }} >> ./bad-depgraph/event-number | |
echo "It looks like this pull request changed the workspace structure. \ | |
Please replace \`assets/depgraph.svg\` with the following text: | |
<details> | |
<summary>depgraph.svg (Don't forget the trailing newline)</summary> | |
\`\`\`html | |
$(cat assets/depgraph.svg) | |
\`\`\` | |
</details> | |
For reference, here is a diff against the old \`depgraph.svg\`: | |
<details> | |
\`\`\`patch | |
$(cat assets/depgraph.patch) | |
\`\`\` | |
</details>" > ./bad-depgraph/pr-comment.txt | |
- name: Upload comment artifact | |
uses: actions/upload-artifact@v2 | |
if: ${{ failure() && github.event_name == 'pull_request' }} | |
with: | |
name: bad-depgraph | |
path: bad-depgraph/ | |
udeps: | |
name: Check for unused dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/[email protected] | |
with: | |
toolchain: "nightly" | |
- name: Install cargo-udeps | |
uses: baptiste0928/[email protected] | |
with: | |
crate: cargo-udeps | |
- name: Check for unused dependencies | |
run: cargo udeps --all --all-features |