mirror of
https://github.com/YosysHQ/yosys
synced 2025-11-05 13:56:04 +00:00
CI: iverilog setup as composite action
Called during setup-build-env.
This commit is contained in:
parent
fc075b901c
commit
4aa075be46
4 changed files with 70 additions and 89 deletions
11
.github/actions/setup-build-env/action.yml
vendored
11
.github/actions/setup-build-env/action.yml
vendored
|
|
@ -5,6 +5,11 @@ inputs:
|
||||||
runs-on:
|
runs-on:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
get-iverilog:
|
||||||
|
description: 'Install iverilog'
|
||||||
|
default: false
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
|
|
@ -38,3 +43,9 @@ runs:
|
||||||
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
|
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
|
||||||
echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH
|
echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH
|
||||||
echo "procs=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
|
echo "procs=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Setup iverilog
|
||||||
|
if: inputs.get-iverilog
|
||||||
|
uses: ./.github/actions/setup-iverilog
|
||||||
|
with:
|
||||||
|
runs-on: ${{ inputs.runs-on }}
|
||||||
|
|
|
||||||
57
.github/actions/setup-iverilog/action.yml
vendored
Normal file
57
.github/actions/setup-iverilog/action.yml
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
name: iverilog setup
|
||||||
|
description: Cached build and install of iverilog
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
runs-on:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Get iverilog
|
||||||
|
id: get-iverilog
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/steveicarus/iverilog.git
|
||||||
|
cd iverilog
|
||||||
|
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Get vcd2fst
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/mmicko/libwave.git
|
||||||
|
mkdir -p ${{ github.workspace }}/.local/
|
||||||
|
cd libwave
|
||||||
|
cmake . -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/.local
|
||||||
|
make -j$procs
|
||||||
|
make install
|
||||||
|
|
||||||
|
- name: Cache iverilog
|
||||||
|
id: cache-iverilog
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: .local/
|
||||||
|
key: ${{ inputs.runs-on }}-${{ steps.get-iverilog.outputs.IVERILOG_GIT }}
|
||||||
|
|
||||||
|
- name: iverilog macOS deps
|
||||||
|
if: steps.cache-iverilog.outputs.cache-hit != 'true' && runner.os == 'macOS'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
brew install autoconf
|
||||||
|
|
||||||
|
- name: Build iverilog
|
||||||
|
if: steps.cache-iverilog.outputs.cache-hit != 'true'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p ${{ github.workspace }}/.local/
|
||||||
|
cd iverilog
|
||||||
|
autoconf
|
||||||
|
CC=gcc CXX=g++ ./configure --prefix=${{ github.workspace }}/.local
|
||||||
|
make -j$procs
|
||||||
|
make install
|
||||||
|
|
||||||
|
- name: Check iverilog
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
iverilog -V
|
||||||
43
.github/workflows/test-build.yml
vendored
43
.github/workflows/test-build.yml
vendored
|
|
@ -109,48 +109,7 @@ jobs:
|
||||||
uses: ./.github/actions/setup-build-env
|
uses: ./.github/actions/setup-build-env
|
||||||
with:
|
with:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
setup-iverilog: true
|
||||||
- name: Get iverilog
|
|
||||||
id: get-iverilog
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/steveicarus/iverilog.git
|
|
||||||
cd iverilog
|
|
||||||
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Get vcd2fst
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/mmicko/libwave.git
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd libwave
|
|
||||||
cmake . -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Cache iverilog
|
|
||||||
id: cache-iverilog
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: .local/
|
|
||||||
key: ${{ matrix.os }}-${{ steps.get-iverilog.outputs.IVERILOG_GIT }}
|
|
||||||
|
|
||||||
- name: iverilog macOS deps
|
|
||||||
if: steps.cache-iverilog.outputs.cache-hit != 'true' && runner.os == 'macOS'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
brew install autoconf
|
|
||||||
|
|
||||||
- name: Build iverilog
|
|
||||||
if: steps.cache-iverilog.outputs.cache-hit != 'true'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd iverilog
|
|
||||||
autoconf
|
|
||||||
CC=gcc CXX=g++ ./configure --prefix=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Download build artifact
|
- name: Download build artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
|
|
|
||||||
48
.github/workflows/test-sanitizers.yml
vendored
48
.github/workflows/test-sanitizers.yml
vendored
|
|
@ -46,53 +46,7 @@ jobs:
|
||||||
uses: ./.github/actions/setup-build-env
|
uses: ./.github/actions/setup-build-env
|
||||||
with:
|
with:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
setup-iverilog: true
|
||||||
- name: Get iverilog
|
|
||||||
id: get-iverilog
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/steveicarus/iverilog.git
|
|
||||||
cd iverilog
|
|
||||||
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Get vcd2fst
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/mmicko/libwave.git
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd libwave
|
|
||||||
cmake . -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Cache iverilog
|
|
||||||
id: cache-iverilog
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: .local/
|
|
||||||
key: ${{ matrix.os }}-${{ steps.get-iverilog.outputs.IVERILOG_GIT }}
|
|
||||||
|
|
||||||
- name: iverilog macOS deps
|
|
||||||
if: steps.cache-iverilog.outputs.cache-hit != 'true' && runner.os == 'macOS'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
brew install autoconf
|
|
||||||
|
|
||||||
- name: Build iverilog
|
|
||||||
if: steps.cache-iverilog.outputs.cache-hit != 'true'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ github.workspace }}/.local/
|
|
||||||
cd iverilog
|
|
||||||
autoconf
|
|
||||||
CC=gcc CXX=g++ ./configure --prefix=${{ github.workspace }}/.local
|
|
||||||
make -j$procs
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Check iverilog
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
iverilog -V
|
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue