Files
2026-03-02 14:28:34 +03:00

101 lines
2.3 KiB
YAML

name: Rust CI
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Verify Rust installation
run: |
rustc --version
cargo --version
- name: Build
run: cargo check --verbose
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Verify Rust installation
run: |
rustc --version
cargo --version
- name: Build
run: cargo build --verbose
test:
needs: [check, build]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Verify Rust installation
run: |
rustc --version
cargo --version
- name: Test
run: cargo test --verbose
docs:
needs: [check, build]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Verify Rust installation
run: |
rustc --version
cargo --version
- name: Build documentation
run: cargo doc --no-deps --document-private-items
- name: Create docs directory
run: mkdir -p ./docs-output && cp -r target/doc/* ./docs-output/
- name: Upload documentation as artifact
uses: actions/upload-artifact@v4
with:
name: rust-documentation
path: ./docs-output/
retention-days: 30
if-no-files-found: error