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/*