Skip to content

CPUArch dispatching and unified shared library #159

CPUArch dispatching and unified shared library

CPUArch dispatching and unified shared library #159

Workflow file for this run

# Copyright 2025 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Linux Build and Test on ARM
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.cxx }}, ${{ matrix.build_type }}
runs-on: ubuntu-22.04-arm
strategy:
matrix:
build_type: [RelWithDebugInfo]
cxx: [g++-11, g++-12, clang++-15]
include:
- cxx: g++-11
cc: gcc-11
- cxx: g++-12
cc: gcc-12
- cxx: clang++-15
cc: clang-15
steps:
- uses: actions/checkout@v4
- name: Get CPU info
run: |
bash ${GITHUB_WORKSPACE}/.github/scripts/get_cpu_info.sh
- name: Configure build
working-directory: ${{ runner.temp }}
env:
CXX: ${{ matrix.cxx }}
CC: ${{ matrix.cc }}
TEMP_WORKSPACE: ${{ runner.temp }}
run: |
cmake -B${TEMP_WORKSPACE}/build -S${GITHUB_WORKSPACE} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DSVS_BUILD_BINARIES=YES \
-DSVS_BUILD_TESTS=YES \
-DSVS_BUILD_EXAMPLES=YES \
-DSVS_EXPERIMENTAL_LEANVEC=YES
- name: Build Tests and Utilities
working-directory: ${{ runner.temp }}/build
run: make -j$(nproc)
- name: Run tests
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{ runner.temp }}/build/tests
run: ctest -C ${{ matrix.build_type }}
- name: Build Python Bindings
env:
CXX: ${{ matrix.cxx }}
CC: ${{ matrix.cc }}
run: |
cd bindings/python
python -m pip install .
- name: Run Python Microarch Test
run: |
cd bindings/python
python -c "import svs; svs.microarch.describe()"
python -m unittest discover -p "test_microarch.py" -s .