Nightly Linux tests / LLVM trunk #1526
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: 813591 | |
SDE_TAR_NAME: sde-external-9.33.0-2024-01-07 | |
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)" ] | |