Skip to content

Create a True Multiprotcol DMA Engine #145

Create a True Multiprotcol DMA Engine

Create a True Multiprotcol DMA Engine #145

Workflow file for this run

# Copyright 2022 ETH Zurich and University of Bologna.
# Solderpad Hardware License, Version 0.51, see LICENSE for details.
# SPDX-License-Identifier: SHL-0.51
# Author: Michael Rogenmoser <[email protected]>
name: ci
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
env:
BENDER: ./bender
jobs:
check-clean:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Install Bender
run: make bender
- name: Python Requirements
run: pip install -r requirements.txt
- name: Check clean make targets
run: |
make -B prepare_sim gen_ci gen_regs
make clean
git status && test -z "$(git status --porcelain)"
check-stale:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Install Bender
run: make bender
- name: Python Requirements
run: pip install -r requirements.txt
- name: Check clean makefile
run: |
make -B prepare_sim gen_ci gen_regs
git status && test -z "$(git status --porcelain)"
lint:
runs-on: ubuntu-latest
needs: [check-clean, check-stale]
strategy:
fail-fast: false
matrix:
lint_check: [license, python]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Python Requirements
run: python3 -m pip install -r requirements.txt
- name: Install Bender
run: make bender
- name: Lint license
if: ${{ matrix.lint_check == 'license' }}
run: scripts/check-license
- name: Lint python
if: ${{ matrix.lint_check == 'python' }}
run: scripts/python-lint
lint-commit:
runs-on: ubuntu-latest
needs: [check-clean, check-stale]
steps:
- uses: actions/checkout@v3
if: ${{ github.event_name == 'push' }}
- uses: actions/checkout@v3
if: ${{ github.event_name == 'pull_request' }}
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Python Requirements
run: python3 -m pip install -r requirements.txt
- name: Lint commits
run: python3 util/lint-commits.py HEAD
lint-verilog:
runs-on: ubuntu-latest
needs: [check-clean, check-stale]
steps:
- uses: actions/checkout@v3
- uses: chipsalliance/verible-linter-action@main
with:
paths: |
./src
exclude_paths: |
./src/test
./src/systems/idma_axi_to_mem.sv
extra_args: "--rules=-interface-name-style --lint_fatal --parse_fatal --waiver_files util/waiver.verible"
github_token: ${{ secrets.GITHUB_TOKEN }}
reviewdog_reporter: github-check
analyze-contributors:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Python Requirements
run: pip install -r requirements.txt
- name: List contributors
run: scripts/list-contributors | tee contributions.txt
- name: Upload contributions.txt
uses: actions/upload-artifact@v2
with:
name: contributions
path: contributions.txt
retention-days: 7
analyze-todos:
runs-on: ubuntu-latest
needs: lint
continue-on-error: true
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Python Requirements
run: pip install -r requirements.txt
- name: List todos
run: scripts/list-todos | tee open_todos.txt
- name: Upload todos.txt
uses: actions/upload-artifact@v2
with:
name: open_todos
path: open_todos.txt
retention-days: 7
docs:
runs-on: ubuntu-22.04
needs: [lint, lint-verilog]
env:
MORTY: ./morty
steps:
- uses: actions/checkout@v3
- name: Install Bender
run: make bender
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Python Requirements
run: python3 -m pip install -r requirements.txt
- name: Install Morty
run: |
curl --proto '=https' --tlsv1.2 -sLO https://github.com/pulp-platform/morty/releases/download/v0.7.0/morty-ubuntu.22.04-x86_64.tar.gz
tar -xvf morty-ubuntu.22.04-x86_64.tar.gz morty
rm -f morty-ubuntu.22.04-x86_64.tar.gz
cp morty doc
- name: Build Doc
run: make doc
- name: Pickle
run: make -B pickle
- name: Upload doc
uses: actions/upload-artifact@v2
with:
name: doc
path: doc/build
retention-days: 7
- name: Upload pickle
uses: actions/upload-artifact@v2
with:
name: pickle
path: pickle
retention-days: 7
- name: Create publish docs
if: ${{ github.event_name == 'push' }}
uses: actions/upload-pages-artifact@main
with:
path: doc/build/html
deploy-pages:
needs: docs
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.output.page_url }}
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- name: Deploy to Github Pages
id: deployment
uses: actions/deploy-pages@v1