đ¤ CI/CD Automation & GitHub Actions
Automating testing, code quality linting, security vulnerability auditing, and documentation deployment ensures continuous delivery without regressions.
This guide provides complete GitHub Actions workflow configurations.
1. CI Pipeline Workflow (.github/workflows/ci.yml)â
name: Ferrox CI Pipeline
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
check-and-test:
name: Code Quality & Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Check Format
run: cargo fmt --all -- --check
- name: Run Clippy Linter
run: cargo clippy --workspace -- -D warnings
- name: Run Workspace Unit Tests
run: cargo test --workspace
security-audit:
name: Security Vulnerability Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rustsec/audit-check-action@v1.4.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
2. Documentation Build & Deploy Workflow (.github/workflows/docs.yml)â
name: Deploy Docusaurus Portal
on:
push:
branches: [ main ]
paths:
- 'docs/**'
jobs:
deploy-docs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
cache-dependency-path: docs/package-lock.json
- name: Install Dependencies
run: npm ci
- name: Build Docusaurus Website
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/build
\n\n---\n\n## 1. Philosophy / Purpose\n\nDocument the philosophy and core purpose of this component here.\n\n## 2. Architectural Layering\n\nExplain where this component sits within the Onion Architecture (e.g., Domain, Application, Infrastructure, or Presentation). \n\n## 3. How it Works (Under the hood)\n\nDetail the internal mechanics, memory model, and execution flow.\n\n## 4. Why it was designed this way\n\nExplain the historical context, trade-offs, and design rationale.\n\n## 5. Usage Guide & Code Examples\n\nProvide integration examples, setup guides, and typical use cases.\n\n## 6. Anti-Patterns\n\nList common mistakes, misconfigurations, and patterns to avoid when using this component.\n\n## 7. Pro-Tips / Best Practices\n\nProvide advanced tips, performance optimizations, and recommended patterns.