Skip to content

Release prep: ison-js and ison-cs to 1.1.1 #32

Release prep: ison-js and ison-cs to 1.1.1

Release prep: ison-js and ison-cs to 1.1.1 #32

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
# ===========================================
# JavaScript Tests
# ===========================================
test-js:
name: Test JavaScript (ison-parser)
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['18', '20', '22']
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Test ison-js
working-directory: ison-js
run: |
npm install
mkdir -p dist
npm run build
npm test
# ===========================================
# TypeScript Tests
# ===========================================
test-ts:
name: Test TypeScript (ison-ts)
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['18', '20', '22']
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Test ison-ts
working-directory: ison-ts
run: |
npm install
npm run build
npm test
- name: Test isonantic-ts
working-directory: isonantic-ts
run: |
npm install
npm run build
npm test
# ===========================================
# Python Tests
# ===========================================
test-python:
name: Test Python
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Test ison-py
working-directory: ison-py
run: |
pip install -e ".[dev]"
pytest tests/ -v --tb=short
- name: Test isonantic
working-directory: isonantic
run: |
pip install -e ".[dev]"
pytest tests/ -v --tb=short
- name: Test ison-cli
working-directory: ison-cli
run: |
pip install -e ".[dev]"
pytest tests/ -v --tb=short
# ===========================================
# Go Tests
# ===========================================
test-go:
name: Test Go
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 'stable'
- name: Test ison-go
working-directory: ison-go
run: |
go vet ./...
go test ./... -count=1
- name: Test isonantic-go
working-directory: isonantic-go
run: |
go vet ./...
go test ./... -count=1
# ===========================================
# Rust Tests
# ===========================================
test-rust:
name: Test Rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Test ison-rust
working-directory: ison-rust
run: cargo test --all-features
- name: Test isonantic-rust
working-directory: isonantic-rust
run: cargo test --all-features
# ===========================================
# C++ Tests
# ===========================================
test-cpp:
name: Test C++
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install CMake
uses: lukka/get-cmake@latest
- name: Build and test ison-cpp
working-directory: ison-cpp
run: |
mkdir -p build && cd build
cmake .. -DISON_BUILD_TESTS=ON
cmake --build .
ctest --output-on-failure
- name: Build and test isonantic-cpp
working-directory: isonantic-cpp
run: |
mkdir -p build && cd build
cmake .. -DISONANTIC_BUILD_TESTS=ON
cmake --build .
ctest --output-on-failure
# ===========================================
# C# Tests
# ===========================================
test-csharp:
name: Test C# (ison-cs)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'
- name: Build and test ison-cs
working-directory: ison-cs
run: |
dotnet restore
dotnet build --no-restore --configuration Release
dotnet test --no-build --configuration Release --verbosity normal