Skip to content

cl

cl #2018

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
- cron: '0 8 * * *'
jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DoozyX/[email protected]
with:
source: '.'
build-linux:
strategy:
matrix:
build_type: [DEBUG, RELEASE]
use_tensorflow: [ON, OFF]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download and extract TensorFlow
run: |
wget https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
tar -xzvf libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
if: ${{ matrix.use_tensorflow }} == ON
- name: Set TensorFlow environment variables
run: |
echo "export TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "export TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.so" >> $GITHUB_ENV
if: ${{ matrix.use_tensorflow }} == ON
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-${{ github.job }}-${{ matrix.build_type }}
max-size: 2G
- name: Build
run: |
cmake -S . -B build \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DTensorFlow_INCLUDE_DIRS=${{ env.TensorFlow_INCLUDE_DIRS }} \
-DTensorFlow_LIBRARIES=${{ env.TensorFlow_LIBRARIES }}
cmake --build build --parallel
env:
CTEST_OUTPUT_ON_FAILURE: 1
- name: Test
run: cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
- name: Test (valgrind)
run: |
sudo apt-get update
sudo apt-get install -y valgrind
valgrind cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
build-linux-clang:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install prerequisites
run: |
sudo apt install clang libomp-dev
- name: Download and extract TensorFlow
run: |
wget https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
tar -xzvf libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
- name: Set TensorFlow environment variables
run: |
echo "TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.so" >> $GITHUB_ENV
echo "export TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "export TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.so" >> $GITHUB_ENV
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-${{ github.job }}
- name: Build
run: |
cmake -S . -B build \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DTensorFlow_INCLUDE_DIRS=${{ env.TensorFlow_INCLUDE_DIRS }} -DTensorFlow_LIBRARIES=${{ env.TensorFlow_LIBRARIES }}
cmake --build build --parallel
- name: Test
run: cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
- name: Test (valgrind)
run: |
sudo apt-get update
sudo apt-get install -y valgrind
valgrind cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install prerequisites
run: |
brew install libomp
brew link libomp --overwrite --force
- name: Download and extract TensorFlow
run: |
curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-darwin-x86_64-2.7.0.tar.gz
tar -xzvf libtensorflow-cpu-darwin-x86_64-2.7.0.tar.gz
- name: Set TensorFlow environment variables
run: |
echo "TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.dylib" >> $GITHUB_ENV
echo "export TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "export TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.dylib" >> $GITHUB_ENV
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-${{ github.job }}
- name: Build
run: |
cmake -S . -B build \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_FLAGS="-I$(brew --prefix libomp)/include" \
-DCMAKE_CXX_FLAGS="-I$(brew --prefix libomp)/include" -DTensorFlow_INCLUDE_DIRS=$TensorFlow_INCLUDE_DIRS -DTensorFlow_LIBRARIES=$TensorFlow_LIBRARIES
cmake --build build --parallel
- name: Test
run: cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download and extract TensorFlow
run: |
curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-windows-x86_64-2.7.0.zip
Expand-Archive -Path libtensorflow-cpu-windows-x86_64-2.7.0.zip -DestinationPath 3rdparty/tensorflow
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-${{ github.job }}
max-size: 2G
variant: sccache
- name: Build
run: |
cmake -S . -B build -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
cmake --build build --parallel
- name: Test
run: |
cd build
ctest --output-on-failure
codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y gcovr
- uses: actions/checkout@v4
with:
submodules: true
- name: Download and extract TensorFlow
run: |
wget https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
tar -xzvf libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
- name: Set TensorFlow environment variables
run: |
echo "TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.so" >> $GITHUB_ENV
echo "export TensorFlow_INCLUDE_DIRS=${PWD}/include" >> $GITHUB_ENV
echo "export TensorFlow_LIBRARIES=${PWD}/lib/libtensorflow.so" >> $GITHUB_ENV
- name: Display TensorFlow environment variables
run: |
echo "TensorFlow_INCLUDE_DIRS: ${{ env.TensorFlow_INCLUDE_DIRS }}"
echo "TensorFlow_LIBRARIES: ${{ env.TensorFlow_LIBRARIES }}"
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: ccache-${{ github.job }}-${{ matrix.build_type }}
max-size: 2G
- name: Build
run: |
cmake -S . -B build \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_FLAGS="--coverage" \
-DCMAKE_CXX_FLAGS="--coverage" \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DTensorFlow_INCLUDE_DIRS=${{ env.TensorFlow_INCLUDE_DIRS }} \
-DTensorFlow_LIBRARIES=${{ env.TensorFlow_LIBRARIES }}
cmake --build build --parallel
- name: Test
run: cmake --build build -t test
env:
CTEST_OUTPUT_ON_FAILURE: 1
- name: Generate Coverage Data
run: gcovr -r . --xml -o coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: embedded-dev-research/itlab_2023