name: CI

on:
  - push
  - pull_request

defaults:
  run:
    shell: bash

permissions: {}

env:
  # Disabling incr comp reduces cache size and incr comp doesn't save as much
  # on CI anyway.
  CARGO_BUILD_INCREMENTAL: false
  # Rust's CI denies warnings. Deny them here too to ensure subtree syncs don't
  # fail because of warnings.
  RUSTFLAGS: "-Dwarnings"

jobs:
  todo_check:
    runs-on: ubuntu-latest
    timeout-minutes: 10

    steps:
    - uses: actions/checkout@v6

    - name: Check todo
      run: ./y.sh check-todo

  rustfmt:
    runs-on: ubuntu-latest
    timeout-minutes: 10

    steps:
    - uses: actions/checkout@v6

    - name: Avoid installing rustc-dev
      run: |
        sed -i 's/components.*/components = ["rustfmt"]/' rust-toolchain.toml
        rustfmt -v

    - name: Rustfmt
      run: |
        cargo fmt --check
        rustfmt --check --edition 2024 build_system/main.rs
        rustfmt --check --edition 2024 example/*
        rustfmt --check --edition 2024 scripts/*.rs


  test:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 60

    env:
      CG_CLIF_EXPENSIVE_CHECKS: 1

    strategy:
      fail-fast: false
      matrix:
        include:
          - os: ubuntu-latest
            env:
              TARGET_TRIPLE: x86_64-unknown-linux-gnu
          - os: ubuntu-24.04-arm
            env:
              TARGET_TRIPLE: aarch64-unknown-linux-gnu
          - os: macos-15-intel
            env:
              TARGET_TRIPLE: x86_64-apple-darwin
          - os: macos-latest
            env:
              TARGET_TRIPLE: aarch64-apple-darwin
          - os: ubuntu-latest
            env:
              TARGET_TRIPLE: s390x-unknown-linux-gnu
            apt_deps: gcc-s390x-linux-gnu qemu-user
          - os: ubuntu-latest
            env:
              TARGET_TRIPLE: riscv64gc-unknown-linux-gnu
            apt_deps: gcc-riscv64-linux-gnu qemu-user
          - os: windows-latest
            env:
              TARGET_TRIPLE: x86_64-pc-windows-msvc
          - os: windows-latest
            env:
              TARGET_TRIPLE: x86_64-pc-windows-gnu

    steps:
    - uses: actions/checkout@v6

    - name: CPU features
      if: matrix.os == 'ubuntu-latest'
      run: cat /proc/cpuinfo

    - name: Cache cargo target dir
      uses: actions/cache@v5
      with:
        path: build/cg_clif
        key: ${{ runner.os }}-${{ matrix.env.TARGET_TRIPLE }}-cargo-build-target-${{ hashFiles('rust-toolchain.toml', '**/Cargo.lock') }}

    - name: Set MinGW as the default toolchain
      if: matrix.os == 'windows-latest' && matrix.env.TARGET_TRIPLE == 'x86_64-pc-windows-gnu'
      run: rustup set default-host x86_64-pc-windows-gnu

    - name: Install toolchain and emulator
      if: matrix.apt_deps != null
      run: |
        sudo apt-get update
        sudo apt-get install -y ${{ matrix.apt_deps }}

    - name: Prepare dependencies
      run: ./y.sh prepare

    - name: Build
      run: ./y.sh build --sysroot none

    - name: Test
      env:
        TARGET_TRIPLE: ${{ matrix.env.TARGET_TRIPLE }}
      # Skip `graviola` on Windows, too slow
      run: ./y.sh test ${{ runner.os == 'Windows' && '--skip-test test.graviola' || '' }}

    - name: Install LLVM standard library
      run: rustup target add ${{ matrix.env.TARGET_TRIPLE }}

    # This is roughly config rust-lang/rust uses for testing
    - name: Test with LLVM sysroot
      env:
        TARGET_TRIPLE: ${{ matrix.env.TARGET_TRIPLE }}
      # Skip `graviola` on Windows, too slow
      run: ./y.sh test --sysroot llvm --no-unstable-features ${{ runner.os == 'Windows' && '--skip-test test.graviola' || '' }}


  # This job doesn't use cg_clif in any way. It checks that all cg_clif tests work with cg_llvm too.
  test_llvm:
    runs-on: ubuntu-latest
    timeout-minutes: 60

    steps:
    - uses: actions/checkout@v6

    - name: CPU features
      run: cat /proc/cpuinfo

    - name: Prepare dependencies
      run: ./y.sh prepare

    - name: Disable JIT tests
      run: |
        sed -i 's/jit./#jit./' config.txt

    - name: Test
      env:
        TARGET_TRIPLE: x86_64-unknown-linux-gnu
      run: ./y.sh test --use-backend llvm

  bench:
    runs-on: ubuntu-latest
    timeout-minutes: 60

    steps:
    - uses: actions/checkout@v6

    - name: CPU features
      run: cat /proc/cpuinfo

    - name: Cache cargo target dir
      uses: actions/cache@v5
      with:
        path: build/cg_clif
        key: ${{ runner.os }}-x86_64-unknown-linux-gnu-cargo-build-target-${{ hashFiles('rust-toolchain.toml', '**/Cargo.lock') }}

    - name: Install hyperfine
      run: |
        sudo apt update
        sudo apt install -y hyperfine

    - name: Build
      run: ./y.sh build --sysroot none

    - name: Benchmark
      run: ./y.sh bench


  dist:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 60

    strategy:
      fail-fast: false
      matrix:
        include:
          # Intentionally using an older ubuntu version to lower the glibc requirements of the distributed cg_clif
          - os: ubuntu-22.04
            env:
              TARGET_TRIPLE: x86_64-unknown-linux-gnu
          - os: ubuntu-24.04-arm
            env:
              TARGET_TRIPLE: aarch64-unknown-linux-gnu
          - os: macos-15-intel
            env:
              TARGET_TRIPLE: x86_64-apple-darwin
          - os: macos-latest
            env:
              TARGET_TRIPLE: aarch64-apple-darwin
          - os: windows-latest
            env:
              TARGET_TRIPLE: x86_64-pc-windows-msvc
          - os: windows-latest
            env:
              TARGET_TRIPLE: x86_64-pc-windows-gnu

    steps:
    - uses: actions/checkout@v6

    - name: Cache cargo target dir
      uses: actions/cache@v5
      with:
        path: build/cg_clif
        key: ${{ runner.os }}-${{ matrix.env.TARGET_TRIPLE }}-dist-cargo-build-target-${{ hashFiles('rust-toolchain.toml', '**/Cargo.lock') }}

    - name: Set MinGW as the default toolchain
      if: matrix.os == 'windows-latest' && matrix.env.TARGET_TRIPLE == 'x86_64-pc-windows-gnu'
      run: rustup set default-host x86_64-pc-windows-gnu

    - name: Build backend
      run: ./y.sh build --sysroot none

    - name: Build sysroot
      run: ./y.sh build

    - name: Package prebuilt cg_clif
      run: tar cvfJ cg_clif.tar.xz dist

    - name: Upload prebuilt cg_clif
      uses: actions/upload-artifact@v6
      with:
        name: cg_clif-${{ matrix.env.TARGET_TRIPLE }}
        path: cg_clif.tar.xz

  release:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    if: ${{ github.ref == 'refs/heads/main' }}
    needs: [todo_check, rustfmt, test, bench, dist]

    permissions:
      contents: write # for creating the dev tag and release

    concurrency:
      group: release-dev
      cancel-in-progress: true

    steps:
      - uses: actions/checkout@v6

      - name: Download all built artifacts
        uses: actions/download-artifact@v8
        with:
          path: artifacts/

      - run: |
          ls -R artifacts/
          mkdir release/
          pushd artifacts/
          for dir in *; do
            mv $dir/cg_clif.tar.xz ../release/$dir.tar.xz
            rmdir $dir/ # verify $dir is empty
          done
          popd
          rmdir artifacts/ # verify all artifacts are represented in release/
          ls -R release/

      - name: Publish release
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          gh release delete --cleanup-tag -y dev || true
          gh release create --target $GITHUB_SHA --prerelease dev release/*
