Files
UIrclone/.forgejo/workflows/main.yaml
T
2026-03-27 17:20:43 +03:00

102 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
true
- 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: 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: 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@v3
with:
name: rust-documentation
path: ./docs-output/
retention-days: 30
if-no-files-found: error