1313# secrets.GH_TOKEN
1414# secrets.CONDA_UPLOAD_TOKEN_TAG
1515
16- name : SURF Integration
16+ name : CI
1717on : [push]
1818
1919jobs :
2020
2121# ----------------------------------------------------------------------------
22-
23- test_and_document :
24- name : Test And Generate Documentation
22+ lint :
23+ name : Linting
2524 runs-on : ubuntu-24.04
26- steps :
2725
28- # This step checks out a copy of your repository.
26+ steps :
2927 - uses : actions/checkout@v3
3028 with :
3129 fetch-depth : 0
@@ -37,22 +35,19 @@ jobs:
3735 - name : Install dependencies
3836 run : |
3937 sudo apt-get update
40- sudo apt-get install make python3 python3-pip tclsh ghdl
41- sudo apt-get install doxygen doxygen-doc doxygen-latex doxygen-gui graphviz
38+ sudo apt-get install -y make python3 python3-pip tclsh ghdl
4239 python -m pip install --upgrade pip
4340 pip install -r pip_requirements.txt
4441 git clone https://github.com/slaclab/ruckus.git
4542 pip install -r ruckus/scripts/pip_requirements.txt
4643
4744 - name : Check for trailing whitespace and tabs
4845 run : |
49- # Check for trailing whitespace
5046 if grep -rnI '[[:blank:]]$' --include=\*.{vhd,tcl,py} .; then
5147 echo "Error: Trailing whitespace found in the repository!"
5248 exit 1
5349 fi
5450
55- # Check for tab characters instead of spaces
5651 if grep -rnI $'\t' --include=\*.{vhd,tcl,py} .; then
5752 echo "Error: Tab characters found in the repository! Please use spaces for indentation."
5853 exit 1
@@ -71,18 +66,58 @@ jobs:
7166 run : |
7267 source scripts/vsg_linter.sh
7368
69+ - name : VHDL Syntax Checking
70+ run : |
71+ make MODULES=$PWD analysis
72+
73+ # ----------------------------------------------------------------------------
74+ test :
75+ name : Regression Tests
76+ runs-on : ubuntu-24.04
77+
78+ steps :
79+ - uses : actions/checkout@v3
80+ with :
81+ fetch-depth : 0
82+
83+ - uses : actions/setup-python@v4
84+ with :
85+ python-version : 3.12
86+
87+ - name : Install dependencies
88+ run : |
89+ sudo apt-get update
90+ sudo apt-get install -y make python3 python3-pip tclsh ghdl
91+ python -m pip install --upgrade pip
92+ pip install -r pip_requirements.txt
93+ git clone https://github.com/slaclab/ruckus.git
94+ pip install -r ruckus/scripts/pip_requirements.txt
95+
7496 - name : VHDL Regression Testing
7597 run : |
76- make MODULES=$PWD
98+ make MODULES=$PWD import
7799 python -m pytest --cov -v -n auto tests/
78100
79101 - name : Code Coverage
80102 run : |
81103 codecov
82104 coverage report -m
83105
106+ # ----------------------------------------------------------------------------
107+
108+ docs :
109+ name : Documentation
110+ runs-on : ubuntu-24.04
111+
112+ steps :
113+ - uses : actions/checkout@v3
114+
115+ - name : Install documentation tools
116+ run : |
117+ sudo apt-get update
118+ sudo apt-get install -y doxygen doxygen-doc doxygen-latex doxygen-gui graphviz
119+
84120 - name : Generate Documentation
85- if : startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/pre-release'
86121 run : |
87122 doxygen Doxyfile
88123
96131# ----------------------------------------------------------------------------
97132
98133 gen_release :
99- needs : [test_and_document ]
134+ needs : [lint, test, docs ]
100135 uses : slaclab/ruckus/.github/workflows/gen_release.yml@main
101136 with :
102137 version : ' 1.0.0'
@@ -106,7 +141,7 @@ jobs:
106141# ----------------------------------------------------------------------------
107142
108143 conda_build_lib :
109- needs : [test_and_document ]
144+ needs : [lint, test, docs ]
110145 uses : slaclab/ruckus/.github/workflows/conda_build_lib.yml@main
111146 with :
112147 version : ' 1.0.0'
0 commit comments