1- name : OsvvmRegressionOnGHDL
1+ name : OSVVM Regression Testing on GHDL
22
33on :
44 push :
88 - cron : ' 0 15 * * *'
99
1010jobs :
11-
12- lin :
13- runs-on : ubuntu-22 .04
11+ RegressionTest :
12+ name : ${{ matrix.os.icon }}${{ matrix.os.name }} - GHDL ${{ matrix.backend }}
13+ runs-on : ubuntu-24 .04
1414 strategy :
1515 fail-fast : false
1616 matrix :
17+ os :
18+ - {icon: "🐧", name: "Ubuntu", image: "ubuntu-24.04", shell: "bash", runtime: ""}
19+ - {icon: "🍏", name: "macOS", image: "macos-14", shell: "bash", runtime: ""}
20+ - {icon: "🪟🟨", name: "Windows", image: "windows-2022", shell: "msys2 {0}", runtime: "ucrt64"}
1721 backend :
1822 - mcode
1923 - llvm
20- name : ' 🐧 Ubuntu · ${{ matrix.backend }}'
21- steps :
2224
23- - name : ' 🧰 Checkout'
25+ defaults :
26+ run :
27+ shell : ${{ matrix.os.shell }}
28+
29+ steps :
30+ - name : ⏬ Checkout repository
2431 uses : actions/checkout@v4
2532 with :
26- path : OsvvmLibraries
2733 submodules : recursive
2834
29- - name : ' ⚙️ Setup GHDL'
30- uses : ghdl/setup-ghdl-ci@master
35+ - name : ${{ matrix.os.icon }} Setup MSYS2 for ${{ matrix.os.runtime }}
36+ uses : msys2/setup-msys2@v2
37+ with :
38+ msystem : ${{ matrix.os.runtime }}
39+ update : true
40+ install : git
41+ pacboy : tcl:p tcllib:p
42+
43+ - name : ⚙️ Setup GHDL
44+ uses : ghdl/setup-ghdl@v1
3145 with :
46+ version : nightly
47+ runtime : ${{ matrix.os.runtime }}
3248 backend : ${{ matrix.backend }}
3349
34- - name : ' 🛠️ Install tcl'
50+ - name : 🐧🛠️ Install tcl and tcllib
51+ if : runner.os == 'Linux'
52+ run : |
53+ sudo apt-get update
54+ sudo apt-get install -y --no-install-recommends tcl tcllib
55+
56+ - name : 🍏🛠️ Install tcl-tk
57+ if : runner.os == 'macOS'
3558 run : |
36- sudo apt update -qq
37- sudo apt install -y tcl tcllib
59+ brew install tcl-tk
3860
39- - name : ' 🚧 Run tests'
40- run : tclsh ./OsvvmLibraries/.github/test.tcl
61+ - name : 🚧 Run tests'
62+ run : |
63+ mkdir temp
64+ cd temp
65+
66+ tclsh ../.github/test.tcl
4167
4268 - name : ' 📤 Upload artifact: logs'
4369 uses : actions/upload-artifact@v4
4470 with :
4571 name : log-ubuntu-ghdl-${{ matrix.backend }}
4672 include-hidden-files : true
4773 path : |
48- *.log
49- *.yml
50- *.html
51- *.xml
52- reports/*.html
53- reports/**/*.html
54- logs/**/*.*
74+ temp/ *.log
75+ temp/*.html
76+ temp/reports/ *.html
77+ temp/reports/**/*.html
78+ temp/logs/**/*.*
79+ temp/ reports/*.css
80+ temp/reports/osvvm.png
5581 if-no-files-found : error
56-
57- win :
58- runs-on : windows-latest
59- strategy :
60- fail-fast : false
61- matrix :
62- include :
63- # - {icon: '🟦', msys: 'MINGW64', pkg: 'llvm' }
64- - {icon: '🟨', msys: 'UCRT64', pkg: 'llvm' }
65- # - {icon: '🟦', msys: 'MINGW64', pkg: 'mcode' }
66- - {icon: '🟨', msys: 'UCRT64', pkg: 'mcode' }
6782
68- name : ' ${{ matrix.icon }} ${{ matrix.msys }} · ${{ matrix.pkg }}'
69- defaults :
70- run :
71- shell : msys2 {0}
72- steps :
73-
74- - name : ' ${{ matrix.icon }} Setup MSYS2'
75- uses : msys2/setup-msys2@v2
76- with :
77- msystem : ${{ matrix.msys }}
78- update : true
79- install : git
80- pacboy : tcl:p tcllib:p make:p python3:p
81-
82- - name : ' 🧰 Checkout'
83- uses : actions/checkout@v4
84- with :
85- path : OsvvmLibraries
86- submodules : recursive
87-
88- - name : ' ⚙️ Setup GHDL'
89- uses : ghdl/setup-ghdl-ci@master
83+ - name : ' 📤 Upload artifact: yaml'
84+ uses : actions/upload-artifact@v4
9085 with :
91- backend : ${{ matrix.pkg }}
92-
93- - name : ' 🚧 Run tests'
94- run : tclsh ./OsvvmLibraries/.github/test.tcl
86+ name : yaml-ubuntu-ghdl-${{ matrix.backend }}
87+ include-hidden-files : true
88+ path : |
89+ temp/*.yml
90+ if-no-files-found : error
9591
96- - name : ' 📤 Upload artifact: logs '
92+ - name : ' 📤 Upload artifact: xml '
9793 uses : actions/upload-artifact@v4
9894 with :
99- name : log-msys2 -ghdl-${{ matrix.pkg }}-${{ matrix.msys }}
95+ name : xml-ubuntu -ghdl-${{ matrix.backend }}
10096 include-hidden-files : true
10197 path : |
102- *.log
103- *.yml
104- *.html
105- *.xml
106- reports/*.html
107- reports/**/*.html
108- logs/**/*.*
109- reports/*.css
110- reports/osvvm.png
98+ temp/*.xml
11199 if-no-files-found : error
112100
113- publish-test-results :
114- if : always()
115- needs : [lin, win]
116- runs-on : ubuntu-latest
101+ PublishTestResults :
117102 name : 📊 Publish Unit Tests Results
118- steps :
103+ runs-on : ubuntu-24.04
104+ needs :
105+ - RegressionTest
119106
120- - name : ⏬ Checkout repository
121- uses : actions/checkout@v4
107+ if : always()
108+
109+ steps :
110+ # - name: ⏬ Checkout repository
111+ # uses: actions/checkout@v4
122112
123113 - name : ' 📥 Download artifact: package'
124114 uses : actions/download-artifact@v4
125115 with :
126116 path : artifacts
127117 pattern : log-*
128118
129- - run : ls artifacts
119+ - name : List all artifacts
120+ run : |
121+ tree artifacts
130122
131123 - name : 📊 Publish Unit Test Results
132124 uses : dorny/test-reporter@v1
@@ -136,3 +128,21 @@ jobs:
136128 reporter : java-junit
137129 list-suites : all
138130 list-tests : failed
131+
132+ Package :
133+ name : 🐧Ubuntu - GHDL ${{ matrix.backend }}
134+ runs-on : ubuntu-24.04
135+
136+ steps :
137+ - name : ⏬ Checkout repository
138+ uses : actions/checkout@v4
139+ with :
140+ path : OsvvmLibraries
141+
142+ - name : ' 📤 Upload artifact: osvvm'
143+ uses : actions/upload-artifact@v4
144+ with :
145+ name : osvvm
146+ path : |
147+ OsvvmLibraries/
148+ if-no-files-found : error
0 commit comments