Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alya Ecosystem CI & Integration Test Suite

Ecosystem CI License

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


⚡ Key Features

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

📦 Tested Ecosystem Packages

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

🚀 Running on GitHub Actions

1. Manual Run (workflow_dispatch)

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

2. Scheduled Nightly Runs

The test suite runs automatically every night at 02:00 UTC against the latest develop branch of the compiler and main of all packages.


💻 Running Locally

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

⚙️ Runner Architecture & Self-Sufficiency

  • 100% Standalone & Universal: The runner is completely self-contained. It clones the compiler (alya-lang/alya) and packages directly into an isolated local workspace/ 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=1 and automatically configures minimal C/Assembly build tools if no host GCC or Clang is detected in PATH.

📄 License

This test suite is open source under the MIT License.

About

Official multi-platform CI and ecosystem test suite for the Alya language compiler and standard packages

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages