name: CI on: push: branches: [main] pull_request: jobs: go: runs-on: ubuntu-latest defaults: run: working-directory: go steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go/go.mod - run: go build ./... - run: go vet ./... - run: test -z "$(gofmt -l .)" - run: go test ./... js: runs-on: ubuntu-latest defaults: run: working-directory: js steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: js/package-lock.json - run: npm ci - run: npm run typecheck - run: npm run build - run: npm test rust: runs-on: ubuntu-latest defaults: run: working-directory: rust steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - run: cargo fmt -- --check - run: cargo clippy --all-targets -- -D warnings - run: cargo build - run: cargo test