copying src from FilMarini:surf:roce fork #1672
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
# ---------------------------------------------------------------------------- | |
# Title : SURF GitHub Actions CI Script | |
# ---------------------------------------------------------------------------- | |
# This file is part of the 'SLAC firmware standard library'. It is subject to | |
# the license terms in the LICENSE.txt file found in the top-level directory | |
# of this distribution and at: | |
# https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. | |
# No part of the 'SLAC firmware standard library', including this file, may be | |
# copied, modified, propagated, or distributed except according to the terms | |
# contained in the LICENSE.txt file. | |
# ---------------------------------------------------------------------------- | |
# The following environment variables are required for this process: | |
# secrets.GH_TOKEN | |
# secrets.CONDA_UPLOAD_TOKEN_TAG | |
name: SURF Integration | |
on: [push] | |
jobs: | |
# ---------------------------------------------------------------------------- | |
test_and_document: | |
name: Test And Generate Documentation | |
runs-on: ubuntu-22.04 | |
steps: | |
# This step checks out a copy of your repository. | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install make python3 python3-pip tclsh | |
sudo apt-get install doxygen doxygen-doc doxygen-latex doxygen-gui graphviz | |
python -m pip install --upgrade pip | |
pip install -r pip_requirements.txt | |
git clone https://github.com/slaclab/ruckus.git | |
pip install -r ruckus/scripts/pip_requirements.txt | |
- name: Python Syntax and Linter Checking | |
run: | | |
python -m compileall -f python/ scripts/ tests/ | |
flake8 --count python/ scripts/ tests/ | |
- name: C/C++ Linter | |
run: | | |
find . -name '*.h' -o -name '*.cpp' -o -name '*.c' | xargs cpplint | |
- name: VHDL Regression Testing | |
run: | | |
./ghdl-build.sh > /dev/null 2>&1 | |
make MODULES=$PWD | |
python -m pytest --cov -v tests/ | |
rm -rf ghdl-build | |
# # Code Coverage | |
# - name: Code Coverage | |
# run: | | |
# codecov | |
# coverage report -m | |
- name: Generate Documentation | |
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/pre-release' | |
run: | | |
doxygen Doxyfile | |
- name: Deploy Documentation | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GH_TOKEN }} | |
publish_dir: doxygen/html | |
# ---------------------------------------------------------------------------- | |
gen_release: | |
needs: [test_and_document] | |
uses: slaclab/ruckus/.github/workflows/gen_release.yml@main | |
with: | |
version: '1.0.0' | |
secrets: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
# ---------------------------------------------------------------------------- | |
conda_build_lib: | |
needs: [test_and_document] | |
uses: slaclab/ruckus/.github/workflows/conda_build_lib.yml@main | |
with: | |
version: '1.0.0' | |
secrets: | |
CONDA_UPLOAD_TOKEN_TAG: ${{ secrets.CONDA_UPLOAD_TOKEN_TAG }} | |
# ---------------------------------------------------------------------------- |