diff --git a/.github/workflows/matrix.yml b/.github/workflows/matrix.yml new file mode 100644 index 0000000..30d2326 --- /dev/null +++ b/.github/workflows/matrix.yml @@ -0,0 +1,57 @@ +name: Matrix Tests + +on: + push: + branches: [main, develop] + pull_request: + branches: [main, develop] + +env: + CARGO_TERM_COLOR: always + +# Supported versions matrix +# Rust: 1.75 (MSRV), stable, beta +# Node: 20 (LTS), 22 (current LTS) + +jobs: + rust-matrix: + name: Contracts (Rust ${{ matrix.rust }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + rust: ["1.75", "stable", "beta"] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.rust }} + targets: wasm32-unknown-unknown + - uses: Swatinem/rust-cache@v2 + with: + key: rust-${{ matrix.rust }} + - name: Build contracts + run: cargo build --release --target wasm32-unknown-unknown + - name: Test contracts + run: cargo test --all --features testutils + + node-matrix: + name: Frontend (Node ${{ matrix.node }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node: ["20", "22"] + defaults: + run: + working-directory: frontend + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: npm + cache-dependency-path: frontend/package-lock.json + - run: npm ci + - run: npm run type-check + - run: npm run build diff --git a/README.md b/README.md index 203226a..b55bde4 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,15 @@ Decentralized governance is critical for DAOs, protocols, and communities to mak - Stellar CLI (optional, for deployment) - Docker & Docker Compose (optional) +### Supported Versions + +| Component | Supported versions | Notes | +|-----------|-------------------|-------| +| Rust | 1.75 (MSRV), stable, beta | Tested via CI matrix | +| Node.js | 20 (LTS), 22 (current LTS) | For frontend build | + +Matrix build status is tracked in the [Matrix Tests workflow](.github/workflows/matrix.yml). + ### Installation & Testing ```bash