Yarpgen fuzzing #24
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 2024, Intel Corporation | |
# SPDX-License-Identifier: BSD-3-Clause | |
# Runs YARPGEN | |
name: Yarpgen fuzzing | |
permissions: read-all | |
on: | |
workflow_dispatch: | |
inputs: | |
timeout: | |
description: "Timeout for test system in minutes. -1 means infinity (default: 1)" | |
required: true | |
type: number | |
default: 1 | |
schedule: | |
# Run every Saturday at 23:00 UTC | |
- cron: '0 23 * * 6' | |
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" | |
LLVM_REPO: https://github.com/ispc/ispc.dependencies | |
jobs: | |
linux-build-ispc: | |
runs-on: ubuntu-22.04 | |
# Disabling this workflow for non ispc/ispc repo as it needs to run on releases only. | |
if: github.repository == 'ispc/ispc' | |
env: | |
LLVM_VERSION: "18.1" | |
LLVM_TAR: llvm-18.1.8-ubuntu22.04-Release+Asserts-x86.arm.wasm.tar.xz | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- 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_linux_package | |
path: build/ispc-trunk-linux.tar.gz | |
yarpgen-build-and-run: | |
runs-on: ubuntu-22.04 | |
needs: [linux-build-ispc] | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
submodules: true | |
- name: Download package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ispc_linux_package | |
- name: Install dependencies and unpack artifacts | |
run: | | |
.github/workflows/scripts/install-test-deps.sh | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
repository: 'intel/yarpgen' | |
submodules: true | |
path: 'yarpgen' | |
- name: Build YARPGEN | |
run: | | |
cmake -B build && cmake --build build | |
working-directory: yarpgen | |
- name: Set up PATH | |
run: | | |
{ | |
echo "YARPGEN_HOME=$GITHUB_WORKSPACE/yarpgen" | |
echo "$GITHUB_WORKSPACE/yarpgen/build:$GITHUB_WORKSPACE/yarpgen/scripts" | |
echo "$GITHUB_WORKSPACE/ispc-trunk-linux/bin" | |
echo "$SDE_HOME" | |
} >> "$GITHUB_ENV" | |
- name: Set timeout for dispatched run | |
if: github.event_name == 'workflow_dispatch' | |
run: echo "TIMEOUT=${{ github.event.inputs.timeout }}" >> "$GITHUB_ENV" | |
- name: Set timeout for scheduled run | |
if: github.event_name == 'schedule' | |
run: echo "TIMEOUT=240" >> "$GITHUB_ENV" | |
- name: Run YARPGEN | |
run: | | |
ispc --version | |
"$YARPGEN_HOME"/scripts/run_gen.py --std ispc --target ispc --timeout "$TIMEOUT" | |
tar -czvf yarpgen.tar.gz testing | |
working-directory: yarpgen | |
- name: Print seeds | |
run: | | |
ls -al testing/*/*/* | |
working-directory: yarpgen | |
- name: Upload YARPGEN results | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: yarpgen | |
path: yarpgen/yarpgen.tar.gz | |