Skip to content

Nightly Linux tests / LLVM trunk #1542

Nightly Linux tests / LLVM trunk

Nightly Linux tests / LLVM trunk #1542

# Copyright 2020-2024, Intel Corporation
# SPDX-License-Identifier: BSD-3-Clause
# Nightly Linux run.
name: Nightly Linux tests / LLVM trunk
permissions: read-all
# Run daily - test sse2-avx512 targets @ -O0/-O1/-O2
on:
schedule:
- cron: '0 7 * * *'
push:
branches:
- '**test_nightly**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
SDE_MIRROR_ID: 831748
SDE_TAR_NAME: sde-external-9.44.0-2024-08-22
USER_AGENT: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
jobs:
linux-build-llvm-trunk:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
submodules: true
- name: Check environment
run: |
cat /proc/cpuinfo
- name: Build LLVM
run: |
cd docker/ubuntu/22.04/cpu_ispc_build
ls -al
docker buildx create --use
docker buildx build --tag ispc/ubuntu22.04 --target=llvm_build --build-arg REPO="${GITHUB_REPOSITORY}" --build-arg SHA="${GITHUB_SHA}" --build-arg LLVM_VERSION=trunk --output=type=tar,dest=result.tar .
- name: Pack LLVM
run: |
cd docker/ubuntu/22.04/cpu_ispc_build
tar xvf result.tar usr/local/src/llvm
mv usr/local/src/llvm/bin-trunk .
# Note using gzip here, instead of xz - trading of space for speed, as it's just for passing to another stage.
tar czvf llvm-trunk-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.gz bin-trunk
- name: Upload package
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: llvm_trunk_linux
path: docker/ubuntu/22.04/cpu_ispc_build/llvm-trunk-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.gz
linux-build-ispc-llvm-trunk:
needs: [linux-build-llvm-trunk]
runs-on: ubuntu-22.04
env:
LLVM_VERSION: "trunk"
LLVM_TAR: llvm-trunk-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.gz
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
submodules: true
- name: Download package
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: llvm_trunk_linux
- name: Install dependencies
run: |
.github/workflows/scripts/install-build-deps.sh
- name: Check environment
run: |
which -a clang
cat /proc/cpuinfo
- name: Build package
run: |
.github/workflows/scripts/build-ispc.sh
- name: Sanity testing (make check-all, make test)
run: |
.github/workflows/scripts/check-ispc.sh
- name: Upload package
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: ispc_llvm_trunk_linux
path: build/ispc-trunk-linux.tar.gz
linux-test-llvm-trunk:
needs: [linux-build-ispc-llvm-trunk]
runs-on: ubuntu-22.04
continue-on-error: false
strategy:
fail-fast: false
matrix:
arch: [x86, x86-64]
target: [sse2-i32x4, sse2-i32x8,
sse4-i8x16, sse4-i16x8, sse4-i32x4, sse4-i32x8,
avx1-i32x4, avx1-i32x8, avx1-i32x16, avx1-i64x4,
avx2-i8x32, avx2-i16x16, avx2-i32x4, avx2-i32x8, avx2-i32x16, avx2-i64x4,
avx2vnni-i32x4, avx2vnni-i32x8, avx2vnni-i32x16,
avx512skx-x4, avx512skx-x8, avx512skx-x16, avx512skx-x64, avx512skx-x32,
avx512icl-x4, avx512icl-x8, avx512icl-x16, avx512icl-x64, avx512icl-x32,
avx512spr-x4, avx512spr-x8, avx512spr-x16, avx512spr-x64, avx512spr-x32]
# See issue #2818 for more deatils. It's SDE problem running on AMD runner.
exclude:
- arch: x86
target: "avx2vnni-i32x4"
- arch: x86
target: "avx2vnni-i32x8"
- arch: x86
target: "avx2vnni-i32x16"
- arch: x86
target: "avx512skx-x4"
- arch: x86
target: "avx512skx-x8"
- arch: x86
target: "avx512skx-x16"
- arch: x86
target: "avx512skx-x32"
- arch: x86
target: "avx512skx-x64"
- arch: x86
target: "avx512icl-x4"
- arch: x86
target: "avx512icl-x8"
- arch: x86
target: "avx512icl-x16"
- arch: x86
target: "avx512icl-x32"
- arch: x86
target: "avx512icl-x64"
- arch: x86
target: "avx512spr-x4"
- arch: x86
target: "avx512spr-x8"
- arch: x86
target: "avx512spr-x16"
- arch: x86
target: "avx512spr-x32"
- arch: x86
target: "avx512spr-x64"
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: Download package
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ispc_llvm_trunk_linux
- name: Install dependencies and unpack artifacts
run: |
.github/workflows/scripts/install-test-deps.sh
- name: Check environment
run: |
cat /proc/cpuinfo
- name: Running tests
run: |
echo PATH="$PATH"
./scripts/alloy.py -r --only="stability ${{ matrix.arch }} current -O0 -O1 -O2" --only-targets="${{ matrix.target }}" --time --update-errors=FP
- name: Upload fail_db.txt
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
if: failure()
with:
name: fail_db.${{matrix.target}}.txt
path: tests/fail_db.txt
- name: Check
run: |
# Print fails to the log.
git diff
# Exit with error code if there are fails.
[ -z "$(git diff)" ]