Update docs, fix multiple initial block case #4889
Workflow file for this run
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
--- | |
# DESCRIPTION: Github actions config | |
# This name is key to badges in README.rst, so we use the name build | |
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 | |
name: build | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 0' # weekly | |
env: | |
CI_OS_NAME: linux | |
CI_COMMIT: ${{ github.sha }} | |
CCACHE_COMPRESS: 1 | |
CCACHE_DIR: ${{ github.workspace }}/.ccache | |
CCACHE_LIMIT_MULTIPLE: 0.95 | |
INSTALL_DIR: ${{ github.workspace }}/install | |
RELOC_DIR: ${{ github.workspace }}/relloc | |
defaults: | |
run: | |
shell: bash | |
working-directory: repo | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04, ubuntu-22.04] | |
compiler: | |
- {cc: clang, cxx: clang++} | |
- {cc: gcc, cxx: g++} | |
runs-on: ${{ matrix.os }} | |
name: Build | ${{ matrix.os }} | ${{ matrix.compiler.cc }} | |
env: | |
CI_BUILD_STAGE_NAME: build | |
CI_RUNS_ON: ${{ matrix.os }} | |
CC: ${{ matrix.compiler.cc }} | |
CXX: ${{ matrix.compiler.cxx }} | |
CACHE_BASE_KEY: build-${{ matrix.os }}-${{ matrix.compiler.cc }} | |
CCACHE_MAXSIZE: 1000M # Per build matrix entry (* 5 = 5000M in total) | |
VERILATOR_ARCHIVE: verilator-${{ github.sha }}-${{ matrix.os }}-${{ matrix.compiler.cc }}.tar.gz | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: repo | |
- name: Cache $CCACHE_DIR | |
uses: actions/cache@v4 | |
env: | |
CACHE_KEY: ${{ env.CACHE_BASE_KEY }}-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ env.CACHE_KEY }}-${{ github.sha }} | |
restore-keys: | | |
${{ env.CACHE_KEY }}- | |
- name: Install packages for build | |
run: ./ci/ci-install.bash | |
- name: Build | |
run: ./ci/ci-script.bash | |
- name: Tar up repository | |
working-directory: ${{ github.workspace }} | |
run: tar --posix -c -z -f ${{ env.VERILATOR_ARCHIVE }} repo | |
- name: Upload tar archive | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/${{ env.VERILATOR_ARCHIVE }} | |
name: ${{ env.VERILATOR_ARCHIVE }} | |
test: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Ubuntu 24.04 GCC | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-0} | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-1} | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-2} | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-3} | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: vltmt-0} | |
- {os: ubuntu-24.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: vltmt-1} | |
# Ubuntu 24.04 Clang | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: dist-vlt-0} | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: dist-vlt-1} | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: dist-vlt-2} | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: dist-vlt-3} | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: vltmt-0} | |
- {os: ubuntu-24.04, compiler: {cc: clang, cxx: clang++}, reloc: 0, suite: vltmt-1} | |
# Ubuntu 22.04 GCC | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-0} | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-1} | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-2} | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: dist-vlt-3} | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: vltmt-0} | |
- {os: ubuntu-22.04, compiler: {cc: gcc, cxx: g++}, reloc: 0, suite: vltmt-1} | |
# Ubuntu 22.04 Clang, also test relocation | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: dist-vlt-0} | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: dist-vlt-1} | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: dist-vlt-2} | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: dist-vlt-3} | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: vltmt-0} | |
- {os: ubuntu-22.04, compiler: {cc: clang, cxx: clang++}, reloc: 1, suite: vltmt-1} | |
runs-on: ${{ matrix.os }} | |
name: Test | ${{ matrix.os }} | ${{ matrix.compiler.cc }} | ${{ matrix.reloc && 'reloc | ' || '' }} ${{ matrix.suite }} | |
env: | |
CI_BUILD_STAGE_NAME: test | |
CI_RUNS_ON: ${{ matrix.os }} | |
CI_RELOC: ${{ matrix.reloc }} | |
CC: ${{ matrix.compiler.cc }} | |
CXX: ${{ matrix.compiler.cxx }} | |
CACHE_BASE_KEY: test-${{ matrix.os }}-${{ matrix.compiler.cc }}-${{ matrix.reloc }}-${{ matrix.suite }} | |
CCACHE_MAXSIZE: 100M # Per build per suite (* 5 * 5 = 2500M in total) | |
VERILATOR_ARCHIVE: verilator-${{ github.sha }}-${{ matrix.os }}-${{ matrix.compiler.cc }}.tar.gz | |
steps: | |
- name: Download tar archive | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.VERILATOR_ARCHIVE }} | |
path: ${{ github.workspace }} | |
- name: Unpack tar archive | |
working-directory: ${{ github.workspace }} | |
run: tar -x -z -f ${{ env.VERILATOR_ARCHIVE }} | |
- name: Cache $CCACHE_DIR | |
uses: actions/cache@v4 | |
env: | |
CACHE_KEY: ${{ env.CACHE_BASE_KEY }}-ccache2 | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ env.CACHE_KEY }}-${{ github.sha }} | |
restore-keys: | | |
${{ env.CACHE_KEY }}- | |
- name: Install test dependencies | |
run: ./ci/ci-install.bash | |
- name: Test | |
env: | |
TESTS: ${{ matrix.suite }} | |
run: ./ci/ci-script.bash | |
lint-py: | |
runs-on: ubuntu-22.04 | |
name: Lint Python | |
env: | |
CI_BUILD_STAGE_NAME: build | |
CI_RUNS_ON: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: repo | |
- name: Install packages for build | |
run: ./ci/ci-install.bash | |
# We use specific version numbers, otherwise a Python package | |
# update may add a warning and break our build | |
- name: Install packages for lint | |
run: sudo pip3 install pylint==3.0.2 ruff==0.1.3 clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff | |
- name: Configure | |
run: autoconf && ./configure --enable-longtests --enable-ccwarn | |
- name: Lint | |
run: make -k lint-py |