chore: CI workflows, gitignore, release pipeline for v2.0

- Add ci.yml: cargo check + clippy + test on macOS/Linux, dashboard build
- Update release.yml: build dashboard before cargo build, fix x86_64-apple-darwin runner (macos-13)
- Update test.yml: add dashboard build job, update checkout action to v4
- Add .svelte-kit/ and apps/dashboard/node_modules/ to gitignore
- Remove .svelte-kit/ from git tracking (intermediate build artifacts)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sam Valladares 2026-02-22 03:09:39 -06:00
parent c2d28f3433
commit 9b1aa9cdeb
136 changed files with 165 additions and 17623 deletions

122
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,122 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
test:
name: Test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- 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-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Check
run: cargo check --workspace
- name: Clippy
run: cargo clippy --workspace -- -D warnings
- name: Test
run: cargo test --workspace
dashboard:
name: Dashboard Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
cache-dependency-path: apps/dashboard/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
working-directory: apps/dashboard
- name: Build dashboard
run: pnpm build
working-directory: apps/dashboard
release-build:
name: Release Build (${{ matrix.target }})
runs-on: ${{ matrix.os }}
if: github.ref == 'refs/heads/main'
needs: [test, dashboard]
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
target: aarch64-apple-darwin
- os: macos-13
target: x86_64-apple-darwin
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build release
run: cargo build --release --target ${{ matrix.target }} -p vestige-mcp
- name: Package
run: |
cd target/${{ matrix.target }}/release
tar czf ../../../vestige-mcp-${{ matrix.target }}.tar.gz vestige-mcp vestige vestige-restore
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: vestige-mcp-${{ matrix.target }}
path: vestige-mcp-${{ matrix.target }}.tar.gz

View file

@ -6,7 +6,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag to build (e.g., v1.1.1)'
description: 'Release tag to build (e.g., v2.0.0)'
required: true
permissions:
@ -30,7 +30,7 @@ jobs:
os: windows-latest
archive: zip
- target: x86_64-apple-darwin
os: macos-latest
os: macos-13
archive: tar.gz
- target: aarch64-apple-darwin
os: macos-latest
@ -38,7 +38,23 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Build dashboard
run: |
cd apps/dashboard
pnpm install --frozen-lockfile
pnpm build
- name: Install Rust
uses: dtolnay/rust-toolchain@stable

View file

@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace --lib
@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build --release --package vestige-mcp
@ -39,16 +39,30 @@ jobs:
timeout-minutes: 30
needs: [unit-tests]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --package vestige-e2e-tests --test journey_tests -- --test-threads=1
dashboard:
name: Dashboard Build
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 22
- run: cd apps/dashboard && pnpm install --frozen-lockfile && pnpm build
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview