feat: tabular parsing, pool, schema evolution, decimal128, loose mode… #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| go: | |
| name: Go | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.24' | |
| - run: cd go && go build ./... | |
| - run: cd go && go test ./... | |
| python: | |
| name: Python | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - run: cd py && pip install -e ".[dev]" | |
| - run: cd py && pytest tests/ | |
| js: | |
| name: JavaScript / TypeScript | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - run: cd js && npm ci | |
| - run: cd js && npm test | |
| rust: | |
| name: Rust | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cd rust/glyph-codec && cargo build | |
| - run: cd rust/glyph-codec && cargo test | |
| c: | |
| name: C | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: cd c/glyph-codec && make clean && make test | |
| publish-gate: | |
| name: Publish Gate | |
| needs: [go, python, js, rust, c] | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: Check all language tests passed | |
| run: | | |
| if [[ "${{ needs.go.result }}" != "success" || \ | |
| "${{ needs.python.result }}" != "success" || \ | |
| "${{ needs.js.result }}" != "success" || \ | |
| "${{ needs.rust.result }}" != "success" || \ | |
| "${{ needs.c.result }}" != "success" ]]; then | |
| echo "One or more language test suites failed:" | |
| echo " Go: ${{ needs.go.result }}" | |
| echo " Python: ${{ needs.python.result }}" | |
| echo " JS: ${{ needs.js.result }}" | |
| echo " Rust: ${{ needs.rust.result }}" | |
| echo " C: ${{ needs.c.result }}" | |
| exit 1 | |
| fi | |
| echo "All 5 language test suites passed. Safe to publish." |