name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
name: Build & Test (Rust, Python, Node, Go)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
- name: Build Rust Core
run: cargo build --release --verbose
- name: Run Rust Tests
run: cargo test --verbose
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Test Python Binding
run: |
python -m pip install --upgrade pip
python -c "import sys; sys.path.insert(0, 'bindings/python'); from rasgapdf import version; print('Python FFI Version:', version())"
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Test Node.js Binding
run: |
node -e "const { version } = require('./bindings/nodejs/index.js'); console.log('Node FFI Version:', version());"
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Test Go Binding
run: |
cd bindings/go
go run cmd/main.go || true