mirror of
https://github.com/The-OpenROAD-Project/OpenSTA.git
synced 2026-09-02 10:48:35 +02:00
109 lines
3.2 KiB
YAML
109 lines
3.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
# Primary native Linux build used for install artifacts.
|
|
linux-ubuntu:
|
|
if: github.repository_owner != 'The-OpenROAD-Project-private'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Set up dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
flex \
|
|
libfl-dev \
|
|
bison \
|
|
tcl-dev \
|
|
tcl-tclreadline \
|
|
libeigen3-dev \
|
|
ninja-build \
|
|
libgtest-dev
|
|
|
|
- name: Set up cudd-3.0.0
|
|
run: |
|
|
wget https://github.com/oscc-ip/artifact/releases/download/cudd-3.0.0/build.tar.gz
|
|
mkdir -p cudd
|
|
tar -zxvf build.tar.gz -Ccudd
|
|
|
|
- name: Build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G Ninja -DCUDD_DIR=$(pwd)/../cudd -DCMAKE_INSTALL_PREFIX=$(pwd)/install -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build . --target all -- -j $(nproc)
|
|
cmake --install .
|
|
tar -zcvf build.tar.gz -Cinstall .
|
|
|
|
- name: Test
|
|
run: |
|
|
cd test
|
|
./regression
|
|
|
|
- name: Upload Artifacts
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: artifact-ubuntu
|
|
path: |
|
|
build/install/*
|
|
retention-days: 1
|
|
|
|
- name: Upload Test Result
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: result-ubuntu
|
|
path: |
|
|
test/results/*
|
|
|
|
# Native macOS coverage via Brewfile.
|
|
macos:
|
|
if: github.repository_owner != 'The-OpenROAD-Project-private'
|
|
runs-on: macos-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Install dependencies
|
|
run: brew bundle
|
|
|
|
- name: Build
|
|
run: |
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
export PATH="$(brew --prefix flex)/bin:$PATH"
|
|
export PATH="$(brew --prefix bison)/bin:$PATH"
|
|
export TCL_LIBRARY="$(brew --prefix tcl-tk@8)/lib/libtcl8.6.dylib"
|
|
export TCL_INCLUDE_PATH="$(brew --prefix tcl-tk@8)/include/tcl-tk"
|
|
export FLEX_INCLUDE_DIR="$(brew --prefix flex)/include"
|
|
cmake -S . -B build \
|
|
-D TCL_LIBRARY=$TCL_LIBRARY \
|
|
-D TCL_INCLUDE_PATH=$TCL_INCLUDE_PATH \
|
|
-D FLEX_INCLUDE_DIR=$FLEX_INCLUDE_DIR \
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build -j "$(sysctl -n hw.ncpu)"
|
|
|
|
- name: Test
|
|
run: |
|
|
cd test
|
|
./regression || (cat results/diffs && exit 1)
|
|
|
|
- name: Upload Test Result
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: result-macos
|
|
path: |
|
|
test/results/*
|