name: Build and run tests with Verific (Linux) on: [push, pull_request] jobs: pre-job: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: paths_ignore: '["**/README.md"]' # don't cancel previous builds cancel_others: 'true' # only run on push *or* pull_request, not both concurrent_skipping: 'same_content_newer' # we have special actions when running on main, so this should be off skip_after_successful_duplicate: 'false' test-verific: needs: pre-job if: needs.pre-job.outputs.should_skip != 'true' runs-on: [self-hosted, linux, x64, fast] steps: - name: Checkout Yosys uses: actions/checkout@v4 with: persist-credentials: false submodules: true - name: Runtime environment run: | echo "procs=$(nproc)" >> $GITHUB_ENV - name: Build Yosys run: | 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_VERIFIC_YOSYSHQ_EXTENSIONS := 1" >> Makefile.conf echo "ENABLE_CCACHE := 1" >> Makefile.conf make -j${{ env.procs }} ENABLE_LTO=1 - name: Install Yosys run: | make install DESTDIR=${GITHUB_WORKSPACE}/.local PREFIX= - 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: Run Yosys tests run: | make -j${{ env.procs }} test - name: Run Verific specific Yosys tests run: | make -C tests/sva cd tests/svtypes && bash run-test.sh - name: Run SBY tests if: ${{ github.ref == 'refs/heads/main' }} run: | make -C sby run_ci prepare-docs: name: Generate docs artifact needs: [pre-job, test-verific] if: needs.pre-job.outputs.should_skip != 'true' runs-on: [self-hosted, linux, x64, fast] steps: - name: Checkout Yosys uses: actions/checkout@v4 with: persist-credentials: false submodules: true - name: Runtime environment run: | echo "procs=$(nproc)" >> $GITHUB_ENV - name: Build Yosys run: | 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_VERIFIC_YOSYSHQ_EXTENSIONS := 1" >> Makefile.conf echo "ENABLE_CCACHE := 1" >> Makefile.conf make -j${{ env.procs }} ENABLE_LTO=1 - name: Prepare docs shell: bash run: make docs/source/cmd/abc.rst docs/gen_examples docs/gen_images docs/guidelines docs/usage docs/reqs TARGETS= EXTRA_TARGETS= - name: Upload artifact uses: actions/upload-artifact@v4 with: name: cmd-ref-${{ github.sha }} path: | docs/source/cmd docs/source/generated docs/source/_images docs/source/code_examples - name: Trigger RTDs build if: ${{ github.ref == 'refs/heads/main' }} uses: dfm/rtds-action@v1.1.0 with: webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} webhook_token: ${{ secrets.RTDS_WEBHOOK_TOKEN }} commit_ref: ${{ github.ref }}