Skip to content

on push

on push #7

Workflow file for this run

name: OSP CI
on: [push]
env:
BUILD_TYPE: Release
jobs:
# -------------------------------------------------
# 1. MULTI-CONFIGURATION BUILD TESTS
# -------------------------------------------------
build_matrix:
name: Build (${{ matrix.build_type }})
runs-on: ubuntu-latest
strategy:
matrix:
build_type: [Debug, RelWithDebInfo, Release]
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
make gcc g++ git libboost-all-dev \
doxygen graphviz python3-pip libeigen3-dev
pip3 install --upgrade pip
pip3 install cmake==3.21.3
- name: Configure (${{ matrix.build_type }})
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
- name: Build (${{ matrix.build_type }})
working-directory: ${{ github.workspace }}/build
run: cmake --build . -j$(nproc)
# -------------------------------------------------
# 2. FULL BUILD + TEST + SIMPLE DAG RUN
# -------------------------------------------------
test_and_run:
name: Build & Test (RelWithDebInfo)
runs-on: ubuntu-latest
needs: build_matrix
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
make gcc g++ git libboost-all-dev \
doxygen graphviz python3-pip libeigen3-dev
pip3 install --upgrade pip
pip3 install cmake==3.21.3
- name: Configure (RelWithDebInfo + tests)
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTS=ON
- name: Build all targets
working-directory: ${{ github.workspace }}/build
run: cmake --build . -j$(nproc)
- name: Run tests
working-directory: ${{ github.workspace }}/build
run: ctest --output-on-failure --output-junit test_results.xml
continue-on-error: true
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results
path: build/test_results.xml
- name: Run osp example (simple DAG)
working-directory: ${{ github.workspace }}/build
run: |
./apps/osp \
--inputDag ../data/spaa/tiny/instance_bicgstab.hdag \
--inputMachine ../data/machine_params/p3.arch \
--Serial --GreedyBsp --BspLocking --GrowLocal --Variance --Cilk \
--Etf --GreedyChildren --MultiHC --SarkarLockingHC \
--GreedyChildrenKL --GrowLocalKL --GreedyBspHC --FunnelLocking
# -------------------------------------------------
# 3. BUILD DOCUMENTATION (only on master)
# -------------------------------------------------
docs:
name: Build Docs
runs-on: ubuntu-latest
needs: test_and_run
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
doxygen graphviz libeigen3-dev cmake g++
- name: Build docs
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target doc
mkdir -p public
cp -r doc/html/* public
- name: Upload docs artifact
uses: actions/upload-artifact@v4
with:
name: docs
path: public