name: CI
permissions: {}
on:
push:
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always
jobs:
style:
name: Check style
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install rust
run: |
rustup install stable
rustup default stable
rustup component add rustfmt
- name: Cargo fmt
run: |
cargo fmt -- --check
clippy:
name: Run clippy
needs: [style]
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install rust
run: |
rustup install stable
rustup default stable
rustup component add clippy
- name: Clippy
run: |
cargo clippy --all-targets -- -D warnings
build-test:
name: ${{ matrix.name }}
needs: [clippy]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
matrix:
name:
- linux / stable
- linux / beta
- macOS / stable
include:
- name: linux / stable
- name: linux / beta
rust: beta
- name: macOS / stable
os: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install rust
run: |
rustup install ${{ matrix.rust || 'stable' }}
rustup default ${{ matrix.rust || 'stable' }}
- name: Build Rust
run: |
cargo build --features=bundled-sqlcipher
- name: Test Rust
run: |
cargo test --features=bundled-sqlcipher
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
persist-credentials: false
- name: Install node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f with:
node-version: "18"
- name: Install node build dependencies
run: cd seshat-node && yarn install
- name: Build node module
run: cd seshat-node && yarn run build-bundled
- name: Test node module
run: cd seshat-node && yarn run test