Official multi-platform integration testing and ecosystem CI for the Alya programming language.
This repository compiles the Alya compiler (against any branch or tag, default: develop), clones all 19 official Alya packages, and executes their test suites across Linux (ubuntu-latest), Windows (windows-latest), and macOS (macos-latest).
- Multi-OS Matrix: Verifies the full ecosystem on Linux, Windows, and macOS (Intel & Apple Silicon).
- Flexible Compiler Branching: Test the compiler on
develop,main, or any feature branch before releasing. - Selective Package Testing: Run tests for all 19 official packages or target a specific package (e.g.
json,http,crypto,term,mustache). - Rich GitHub Step Summary: Generates clear markdown reports with status tables and execution times for each package.
- Standalone & Cross-Platform: Single universal runner (
scripts/run_ecosystem_tests.py) working seamlessly across Windows, Linux, and macOS without requiring a monorepo setup.
| Package | Repository | Description |
|---|---|---|
cli |
alya-lang/cli |
Command-line interface, argument parsing, flag handling |
crypto |
alya-lang/crypto |
Cryptography and hashing library |
csv |
alya-lang/csv |
RFC 4180 CSV and TSV parser/serializer |
dotenv |
alya-lang/dotenv |
Environment variable loader and interpolator |
http |
alya-lang/http |
HTTP client, server, router, and middleware toolkit |
json |
alya-lang/json |
RFC 8259 JSON parser, serializer, builder, and JSONPath |
jwt |
alya-lang/jwt |
JSON Web Token (RFC 7519) library |
logger |
alya-lang/logger |
Leveled structured logging, rotation, and formats |
mime |
alya-lang/mime |
MIME and media type detection |
mustache |
alya-lang/mustache |
Fast, zero-dependency Mustache template engine |
rand |
alya-lang/rand |
PRNG, UUID v4/v7, ULID, and sampling toolkit |
semver |
alya-lang/semver |
Semantic Versioning (SemVer 2.0.0) parser and checker |
sqlite |
alya-lang/sqlite |
SQLite3 bindings with bundled C engine |
template |
alya-lang/template |
Standard package scaffold template |
term |
alya-lang/term |
Modern terminal UI toolkit: ANSI styling, tables, trees, progress, charts, prompts |
toml |
alya-lang/toml |
TOML v1.0.0 parser and serializer |
url |
alya-lang/url |
WHATWG & RFC 3986 compliant URL parser and builder |
uuid |
alya-lang/uuid |
RFC 4122 / RFC 9562 UUID generator and validator |
yaml |
alya-lang/yaml |
Fast, zero-dependency YAML 1.2 parser and serializer |
Go to Actions -> Ecosystem CI -> Run workflow:
- Compiler branch / ref:
develop(or any feature branch/tag) - Packages:
ALL(or comma-separated:http,json,crypto) - Run compiler tests:
true
The test suite runs automatically every night at 02:00 UTC against the latest develop branch of the compiler and main of all packages.
The ecosystem test suite is fully standalone and runs seamlessly across Windows, macOS, and Linux using a single cross-platform Python runner:
# 1. Run full test suite (builds compiler, runs compiler cargo tests, tests all 19 packages):
python scripts/run_ecosystem_tests.py
# 2. Test specific packages only:
python scripts/run_ecosystem_tests.py --packages "json,http,rand"
# 3. Test a custom compiler branch or tag:
python scripts/run_ecosystem_tests.py --compiler-branch my-feature-branch
# 4. Skip compiler unit tests and test packages directly:
python scripts/run_ecosystem_tests.py --skip-compiler-tests
# 5. Fast iteration with specific packages:
python scripts/run_ecosystem_tests.py --packages "uuid,semver" --skip-compiler-tests- 100% Standalone & Universal: The runner is completely self-contained. It clones the compiler (
alya-lang/alya) and packages directly into an isolated localworkspace/folder. - Custom Local Paths (Optional): If you want to test against specific local directories, simply pass
--compiler-dir <path>or--packages-dir <path>. - Automatic Toolchain Provisioning: Sets
ALYA_TOOLCHAIN_AUTO_INSTALL=1and automatically configures minimal C/Assembly build tools if no host GCC or Clang is detected inPATH.
This test suite is open source under the MIT License.