-
Notifications
You must be signed in to change notification settings - Fork 58
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This reverts commit 686a955.
- Loading branch information
Showing
3 changed files
with
289 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
# Copyright 2020 ETH Zurich and University of Bologna. | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Run functional regression checks | ||
name: ci | ||
on: | ||
push: | ||
pull_request: | ||
types: [opened, synchronize, reopened, ready_for_review] | ||
|
||
jobs: | ||
|
||
######## | ||
# Docs # | ||
######## | ||
|
||
docs: | ||
name: Build documentation | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
container: | ||
image: ghcr.io/pulp-platform/snitch_cluster:pyproject | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Build docs | ||
run: make docs | ||
|
||
##################### | ||
# Python unit tests # | ||
##################### | ||
|
||
pytest: | ||
name: Python unit tests | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
container: | ||
image: ghcr.io/pulp-platform/snitch_cluster:pyproject | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Run pytest | ||
run: pytest | ||
|
||
############################################## | ||
# Simulate SW on Snitch Cluster w/ Verilator # | ||
############################################## | ||
|
||
sw-snitch-cluster-vlt: | ||
name: Simulate SW on Snitch Cluster w/ Verilator | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
container: | ||
image: ghcr.io/pulp-platform/snitch_cluster:pyproject | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
submodules: 'recursive' | ||
- name: Install local Python packages | ||
run: pip install . | ||
- name: Build Software | ||
working-directory: target/snitch_cluster | ||
run: | | ||
bender vendor init | ||
make CFG_OVERRIDE=cfg/github-ci.hjson sw | ||
- name: Build Hardware | ||
working-directory: target/snitch_cluster | ||
run: | | ||
make CFG_OVERRIDE=cfg/github-ci.hjson VLT_JOBS=1 bin/snitch_cluster.vlt | ||
- name: Run Tests | ||
working-directory: target/snitch_cluster | ||
run: | | ||
./util/run.py sw/run.yaml --simulator verilator -j | ||
./util/run.py sw/fdiv.yaml --simulator verilator -j | ||
- name: Annotate traces | ||
working-directory: target/snitch_cluster | ||
run: | | ||
make SIM_DIR=./runs/simple annotate -j | ||
######################################### | ||
# Build SW on Snitch Cluster w/ Banshee # | ||
######################################### | ||
|
||
sw-snitch-cluster-banshee: | ||
name: Simulate SW on Snitch Cluster w/ Banshee | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
container: | ||
image: ghcr.io/pulp-platform/snitch_cluster:pyproject | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
submodules: 'recursive' | ||
- name: Install local Python packages | ||
run: pip install . | ||
- name: Build Software | ||
run: | | ||
bender vendor init | ||
make -C target/snitch_cluster SELECT_RUNTIME=banshee sw | ||
- name: Run Tests | ||
env: | ||
SNITCH_LOG: info | ||
working-directory: target/snitch_cluster | ||
run: | | ||
./util/run.py sw/run.yaml --simulator banshee -j |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Copyright 2023 ETH Zurich and University of Bologna. | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Some CI tests run on our GitLab servers due to licenses and tools | ||
name: gitlab-ci | ||
on: [push, pull_request, workflow_dispatch] | ||
jobs: | ||
gitlab-ci: | ||
name: Internal Gitlab CI | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- name: Check Gitlab CI | ||
uses: pulp-platform/pulp-actions/[email protected] | ||
# Skip on forks or pull requests from forks due to missing secrets. | ||
if: | ||
# yamllint disable rule:line-length | ||
github.repository == 'pulp-platform/snitch_cluster' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) | ||
# yamllint enable rule:line-length | ||
with: | ||
domain: iis-git.ee.ethz.ch | ||
repo: github-mirror/snitch_cluster | ||
token: ${{ secrets.GITLAB_TOKEN }} | ||
poll-period: 20 | ||
poll-count: 1000 | ||
retry-count: 100 | ||
retry-period: 50 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
# Copyright 2023 ETH Zurich and University of Bologna. | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Run all lint checks | ||
name: lint | ||
on: [push, pull_request] | ||
|
||
jobs: | ||
|
||
################ | ||
# Verible Lint # | ||
################ | ||
verible-lint: | ||
name: Lint Verilog sources | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: chipsalliance/verible-linter-action@main | ||
with: | ||
paths: | | ||
./hw | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
fail_on_error: true | ||
reviewdog_reporter: github-check | ||
extra_args: "--waiver_files util/lint/waiver.verible" | ||
verible_version: "v0.0-3318-g8d254167" | ||
|
||
##################### | ||
# Vendor Up-to-Date # | ||
##################### | ||
bender-vendor-up-to-date: | ||
name: Check bender vendor up-to-date | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- name: Check bender vendor up-to-date | ||
uses: pulp-platform/pulp-actions/[email protected] | ||
|
||
###################### | ||
# Sources Up-to-Date # | ||
###################### | ||
sources-up-to-date: | ||
name: Check Sources Up-to-Date | ||
runs-on: ubuntu-22.04 | ||
if: github.event.pull_request.draft == false | ||
container: | ||
image: ghcr.io/pulp-platform/snitch_cluster:pyproject | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install local Python packages | ||
run: pip install . | ||
- name: Generate opcodes | ||
run: | | ||
./util/generate-opcodes.sh | ||
- name: Generate RTL sources | ||
working-directory: target/snitch_cluster | ||
run: | | ||
make rtl | ||
# For some reason, the checkout is done by a different user, | ||
# than that running `git diff` (root, possibly due to Docker). | ||
# So we need to set the repository as a safe directory. | ||
- name: Git config safe.directory | ||
run: | | ||
git config --global --add safe.directory $GITHUB_WORKSPACE | ||
- name: Diff porcelain | ||
uses: mmontes11/[email protected] | ||
with: | ||
message: Found differences, please update all sources | ||
|
||
################# | ||
# Check License # | ||
################# | ||
license-lint: | ||
name: Check License headers | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- name: Check License | ||
uses: pulp-platform/pulp-actions/[email protected] | ||
with: | ||
patches: 0001-Allow-hash-comments-in-assembly.patch | ||
# We cover ETH Zurich and lowRISC licenses and Apache 2.0 | ||
# (mostly for SW) and Solderpad for the hardware. | ||
# yamllint disable rule:line-length | ||
license: | | ||
Copyright (\d{4}(-\d{4})?\s)?(ETH Zurich and University of Bologna|lowRISC contributors). | ||
(Solderpad Hardware License, Version 0.51|Licensed under the Apache License, Version 2.0), see LICENSE for details. | ||
SPDX-License-Identifier: (SHL-0.51|Apache-2.0) | ||
# yamllint enable rule:line-length | ||
match_regex: true | ||
exclude_paths: | | ||
sw/snRuntime/src/omp/interface.h | ||
################## | ||
# Lint YML Files # | ||
################## | ||
yaml-lint: | ||
name: Lint YAML Sources | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: yaml-lint | ||
uses: ibiqlik/action-yamllint@v3 | ||
with: | ||
config_file: util/lint/.yamllint.yml | ||
|
||
######################## | ||
# Check Python Sources # | ||
######################## | ||
python-lint: | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
name: Lint Python Sources | ||
steps: | ||
- name: Check out source repository | ||
uses: actions/checkout@v3 | ||
- name: Set up Python environment | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.11" | ||
- name: flake8 Lint | ||
uses: py-actions/flake8@v2 | ||
with: | ||
flake8-version: "6.0.0" | ||
max-line-length: "100" | ||
|
||
###################### | ||
# Clang-Format Check # | ||
###################### | ||
# Check C/C++ files for correct formatting. | ||
clangfmt: | ||
name: Lint C/C++ Sources | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: DoozyX/[email protected] | ||
with: | ||
clangFormatVersion: 10 | ||
|
||
###################### | ||
# Lint Editor Config # | ||
###################### | ||
# Detect trailing whitespaces, missing new lines and wrong file encodings. | ||
editorconfig-lint: | ||
name: Lint Editorconfig | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: editorconfig-checker/action-editorconfig-checker@main | ||
- run: editorconfig-checker |