Skip to content

Build

Build #270

Workflow file for this run

name: "Build"
on:
push:
pull_request:
schedule:
- cron: '0 1 * * *'
jobs:
build_oss:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install OSS-Cad-Suite
uses: YosysHQ/setup-oss-cad-suite@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: docker run --rm -v $(pwd):/work -v /home/runner/work/_temp/oss-cad-suite:/tabby yosyshq/plugin_build_x64:22.04 make
- name: Install
run: |
cp /home/runner/work/_temp/oss-cad-suite/bin/eqy .
make install PREFIX=/home/runner/work/_temp/oss-cad-suite
cp -f /home/runner/work/_temp/oss-cad-suite/bin/eqy /home/runner/work/_temp/oss-cad-suite/libexec/.
cp -f eqy /home/runner/work/_temp/oss-cad-suite/bin/.
- name: Test
run: make test
build_verific:
runs-on: [self-hosted, linux, x64, fast]
steps:
- name: Checkout EQY
uses: actions/checkout@v4
- name: Checkout Yosys
uses: actions/checkout@v4
with:
repository: 'YosysHQ/yosys'
path: 'yosys'
submodules: true
- name: Runtime environment
run: |
echo "procs=$(nproc)" >> $GITHUB_ENV
- name: Build Yosys
run: |
cd yosys
make config-clang
echo "ENABLE_VERIFIC := 1" >> Makefile.conf
echo "ENABLE_VERIFIC_EDIF := 1" >> Makefile.conf
echo "ENABLE_VERIFIC_LIBERTY := 1" >> Makefile.conf
echo "ENABLE_CCACHE := 1" >> Makefile.conf
make -j${{ env.procs }}
make install DESTDIR=${GITHUB_WORKSPACE}/.local PREFIX=
sed -i 's,/usr/local/share,${GITHUB_WORKSPACE}/.local/share,g' ${GITHUB_WORKSPACE}/.local/bin/yosys-config
sed -i 's,/usr/local/include,${GITHUB_WORKSPACE}/.local/include,g' ${GITHUB_WORKSPACE}/.local/bin/yosys-config
sed -i 's,/usr/local/lib,${GITHUB_WORKSPACE}/.local/lib,g' ${GITHUB_WORKSPACE}/.local/bin/yosys-config
- name: Checkout SBY
uses: actions/checkout@v4
with:
repository: 'YosysHQ/sby'
path: 'sby'
- name: Build SBY
run: |
make -C sby install DESTDIR=${GITHUB_WORKSPACE}/.local PREFIX=
- name: EQY Coverage
if: (github.event_name != 'schedule')
run: |
sed -i 's,clang,g,g' ${GITHUB_WORKSPACE}/.local/bin/yosys-config
sed -i 's,--gcov-tool $$PWD/llvm-gcov.sh,,g' Makefile
sed -i "s,--no-external,--no-external --exclude '*/.local/share/*',g" Makefile
make COVERAGE=1
make coverage
lcov_cobertura coverage.info --excludes .local.share --demangle
- name: EQY Tests
if: (github.event_name == 'schedule')
run: |
make
make test EQY="python3 $(pwd)/src/eqy.py"
- name: Report
if: (github.event_name != 'schedule')
run: |
python3 .github/workflows/get_markdown.py coverage.xml 90