name: stdarch tests with sysroot compiled in release mode

on:
  push:
    branches:
      - master
  pull_request:

permissions:
  contents: read

env:
  # Enable backtraces for easier debugging
  RUST_BACKTRACE: 1

jobs:
  build:
    runs-on: ubuntu-24.04

    strategy:
      fail-fast: false
      matrix:
        cargo_runner: [
          "sde -future -rtm_mode full --",
          "",
        ]

    steps:
    - uses: actions/checkout@v4

    # `rustup show` installs from rust-toolchain.toml
    - name: Setup rust toolchain
      run: rustup show

    - name: Setup rust cache
      uses: Swatinem/rust-cache@v2

    - name: Install packages
      run: sudo apt-get install ninja-build ripgrep

    # FIXME: remove when we have binutils version 2.43 in the repo.
    - name: Install more recent binutils
      run: |
        echo "deb http://archive.ubuntu.com/ubuntu plucky main universe" | sudo tee /etc/apt/sources.list.d/plucky-copies.list
        sudo apt-get update
        sudo apt-get install binutils

    - name: Install Intel Software Development Emulator
      if: ${{ matrix.cargo_runner }}
      run: |
          mkdir intel-sde
          cd intel-sde
          dir=sde-external-9.33.0-2024-01-07-lin
          file=$dir.tar.xz
          wget https://downloadmirror.intel.com/813591/$file
          tar xvf $file
          sudo mkdir /usr/share/intel-sde
          sudo cp -r $dir/* /usr/share/intel-sde
          sudo ln -s /usr/share/intel-sde/sde /usr/bin/sde
          sudo ln -s /usr/share/intel-sde/sde64 /usr/bin/sde64

    - name: Set config
      run: |
        echo 'download-gccjit = true' > config.toml

    - name: Build
      run: |
        ./y.sh prepare --only-libcore
        ./y.sh build --sysroot --release --release-sysroot

    - name: Clean
      if: ${{ !matrix.cargo_runner }}
      run: |
        ./y.sh clean all

    - name: Prepare dependencies
      run: |
        git config --global user.email "user@example.com"
        git config --global user.name "User"
        ./y.sh prepare

    - name: Run tests
      if: ${{ !matrix.cargo_runner }}
      run: |
        ./y.sh test --release --clean --release-sysroot --build-sysroot --mini-tests --std-tests --test-libcore
        ./y.sh test --cargo-tests

    - name: Run stdarch tests
      if: ${{ !matrix.cargo_runner }}
      run: |
        CHANNEL=release TARGET=x86_64-unknown-linux-gnu CG_RUSTFLAGS="-Ainternal_features" ./y.sh cargo test --manifest-path build/build_sysroot/sysroot_src/library/stdarch/Cargo.toml

    - name: Run stdarch tests
      if: ${{ matrix.cargo_runner }}
      run: |
        # FIXME: these tests fail when the sysroot is compiled with LTO because of a missing symbol in proc-macro.
        # FIXME: remove --skip test_tile_ when it's implemented.
        STDARCH_TEST_SKIP_FUNCTION="xsave,xsaveopt,xsave64,xsaveopt64" STDARCH_TEST_EVERYTHING=1 CHANNEL=release CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="${{ matrix.cargo_runner }}" TARGET=x86_64-unknown-linux-gnu CG_RUSTFLAGS="-Ainternal_features" ./y.sh cargo test --manifest-path build/build_sysroot/sysroot_src/library/stdarch/Cargo.toml -- --skip rtm --skip tbm --skip sse4a --skip test_tile_

  # Summary job for the merge queue.
  # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
  success_stdarch:
    needs: [build]
    # We need to ensure this job does *not* get skipped if its dependencies fail,
    # because a skipped job is considered a success by GitHub. So we have to
    # overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
    # when the workflow is canceled manually.
    if: ${{ !cancelled() }}
    runs-on: ubuntu-latest
    steps:
      # Manually check the status of all dependencies. `if: failure()` does not work.
      - name: Conclusion
        run: |
          # Print the dependent jobs to see them in the CI log
          jq -C <<< '${{ toJson(needs) }}'
          # Check if all jobs that we depend on (in the needs array) were successful.
          jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
