Skip to content

Commit

Permalink
Revert "REVERT: Disable CI"
Browse files Browse the repository at this point in the history
This reverts commit 686a955.
  • Loading branch information
fischeti committed Sep 4, 2024
1 parent a4ada4c commit fe1686e
Show file tree
Hide file tree
Showing 3 changed files with 289 additions and 0 deletions.
104 changes: 104 additions & 0 deletions .github/workflows/ci.yml
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
28 changes: 28 additions & 0 deletions .github/workflows/gitlab-ci.yaml
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
157 changes: 157 additions & 0 deletions .github/workflows/lint.yml
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

0 comments on commit fe1686e

Please sign in to comment.