Skip to content

test(ooxml): Sprint 21 - Comments, content types, and cover page cove… #66

test(ooxml): Sprint 21 - Comments, content types, and cover page cove…

test(ooxml): Sprint 21 - Comments, content types, and cover page cove… #66

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
test:
name: Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable, "1.70.0"]
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --workspace
- name: Test
run: cargo test --workspace
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Format check
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace -- -D warnings
audit:
name: Documentation Audit
runs-on: ubuntu-latest
needs: [test, lint]
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-stable-${{ hashFiles('**/Cargo.lock') }}
- name: Build utf8dok CLI
run: cargo build --release -p utf8dok-cli
- name: Run compliance audit on our own docs
run: ./target/release/utf8dok audit docs/ --format markdown
- name: Generate audit summary
if: always()
run: |
echo "## Documentation Compliance Report" >> $GITHUB_STEP_SUMMARY
./target/release/utf8dok audit docs/ --format markdown >> $GITHUB_STEP_SUMMARY || echo "Audit completed with findings" >> $GITHUB_STEP_SUMMARY
extension:
name: VS Code Extension
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install extension dependencies
working-directory: editors/vscode
run: npm install
- name: Compile TypeScript
working-directory: editors/vscode
run: npm run compile
wasm:
name: WASM Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Install wasm-pack
run: cargo install wasm-pack
- name: Build WASM
run: wasm-pack build crates/utf8dok-wasm --target web
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build docs
run: cargo doc --workspace --no-deps
env:
RUSTDOCFLAGS: -D warnings
benchmarks:
name: Performance Benchmarks
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-bench-${{ hashFiles('**/Cargo.lock') }}
- name: Run benchmarks
run: cargo bench -p utf8dok-lsp --bench lsp_performance 2>&1 | tail -50