Skip to content

feat: tabular parsing, pool, schema evolution, decimal128, loose mode… #3

feat: tabular parsing, pool, schema evolution, decimal128, loose mode…

feat: tabular parsing, pool, schema evolution, decimal128, loose mode… #3

Workflow file for this run

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."