Merge branch 'timing' #399
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
- push | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: Build LSOracle | |
container: ghcr.io/lnis-uofu/lsoracle-benchmarks:jammy | |
env: | |
CCACHE_COMPRESS: "true" | |
CCACHE_COMPRESSLEVEL: "6" | |
CCACHE_MAXSIZE: "400M" | |
CCACHE_LOGFILE: ccache_log | |
CCACHE_DIR: /__w/LSOracle/.ccache | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- name: Load ccache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
/__w/LSOracle/.ccache | |
key: cicd_testing_build | |
- name: Build | |
run: | | |
ccache -p | |
ccache -z | |
cmake -B build . -D CMAKE_BUILD_TYPE=RELEASE -D YOSYS_INCLUDE_DIR=/yosys -D YOSYS_PLUGIN=ON -D ENABLE_OPENSTA=ON -DENABLE_ABC=ON | |
cmake --build build | |
ccache -s | |
- name: Upload binary artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: lsoracle-binary | |
path: build/core/lsoracle | |
- name: Upload plugin artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: lsoracle-plugin | |
path: build/yosys-plugin/oracle.so | |
- name: Upload unit test artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: lsoracle-tests | |
path: build/core/unit_tests | |
test: | |
runs-on: ubuntu-latest | |
container: ghcr.io/lnis-uofu/lsoracle-benchmarks:jammy | |
needs: build | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v2 | |
- name: Get binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: lsoracle-tests | |
- name: Unit Tests | |
run: | | |
chmod +x unit_tests | |
./unit_tests | |
benchmark: | |
runs-on: ubuntu-latest | |
name: Benchmarks | |
container: ghcr.io/lnis-uofu/lsoracle-benchmarks:jammy | |
needs: build | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v2 | |
- name: Get binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: lsoracle-binary | |
- name: Get plugin | |
uses: actions/download-artifact@v2 | |
with: | |
name: lsoracle-plugin | |
# - name: Prep previous | |
# run: | | |
# mkdir -p benchmarks/previous | |
- name: Run synthesis | |
run: | | |
ls | |
cp lsoracle /usr/local/bin | |
chmod +x /usr/local/bin/lsoracle | |
mkdir -p /usr/local/share/lsoracle | |
mkdir -p /usr/local/share/yosys/plugins | |
cp oracle.so /usr/local/share/yosys/plugins/ | |
cd benchmarks | |
make everything.tsv -j $(nproc) | |
- name: Archive results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: benchmark-results | |
path: | | |
benchmarks/everything.tsv | |
benchmarks/*/*.log | |
benchmarks/*/*.rtl | |
benchmarks/*/*.v | |
benchmarks/*/*.json | |
benchmarks/*/*.gates | |
benchmarks/*/*.sdc | |
#- name: Get previous results | |
# uses: dsaltares/fetch-gh-release-asset@master | |
# with: | |
# version: tags/cicd_test | |
# file: "everything.tsv" | |
# target: "benchmarks/previous/everything.tsv" | |
# token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Render results | |
continue-on-error: true | |
run: | | |
cd benchmarks | |
make sky130_fd_sc_hd__tt_025C_1v80.pdf | |
- name: Archive graph | |
uses: actions/upload-artifact@v2 | |
with: | |
name: benchmark-graphs | |
path: | | |
benchmarks/sky130_fd_sc_hd__tt_025C_1v80.pdf | |
- name: Publish results | |
uses: softprops/action-gh-release@v1 | |
if: github.ref == 'refs/heads/master' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: | | |
benchmarks/everything.tsv | |
benchmarks/sky130_fd_sc_hd__tt_025C_1v80.pdf | |
benchmarks/*/*.log | |
benchmarks/*/*.rtl | |
benchmarks/*/*.v | |
benchmarks/*/*.json | |
benchmarks/*/*.gates | |
benchmarks/*/*.sdc | |
prerelease: true |