mysz-core 0.3.0

The main compiler for the Mysz language project
name: core

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: "-D warnings"

jobs:
  test:
    name: Build
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Source Code
      uses: actions/checkout@v4

    - name: Set up Rust Toolchain
      uses: dtolnay/rust-toolchain@stable
      with:
        components: clippy, rustfmt

    - name: Install LLVM 22
      run: |
        wget -qO- https://apt.llvm.org/llvm.sh | sudo bash -s -- 22
        sudo apt-get install -y llvm-22-dev libpolly-22-dev

    - name: Enable Cargo Cache
      uses: Swatinem/rust-cache@v2

    - name: Verify Code Formatting
      run: cargo fmt --check
  
    - name: Run Linter
      run: cargo clippy --all-targets --all-features -- -D warnings

    - name: Compile Workspace
      run: cargo build --verbose