Skip to content

Commit c4451f0

Browse files
committed
Reworking OSVVM's pipeline.
1 parent c1a434f commit c4451f0

File tree

3 files changed

+94
-84
lines changed

3 files changed

+94
-84
lines changed

.github/test.tcl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if { [lindex $argv 0] eq "NVC" } {
2-
source ./OsvvmLibraries/Scripts/StartNVC.tcl
2+
source ../Scripts/StartNVC.tcl
33
} else {
44
# default to GHDL
5-
source ./OsvvmLibraries/Scripts/StartUp.tcl
5+
source ../Scripts/StartUp.tcl
66
}
7-
build ./OsvvmLibraries/.github/OsvvmRegression.pro
7+
build ../.github/OsvvmRegression.pro

.github/workflows/Test.yml

Lines changed: 88 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: OsvvmRegressionOnGHDL
1+
name: OSVVM Regression Testing on GHDL
22

33
on:
44
push:
@@ -8,125 +8,117 @@ on:
88
- cron: '0 15 * * *'
99

1010
jobs:
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

.github/workflows/Test_NVC.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: OsvvmRegressionOnNVC
22

33
# TODO enable other events and/or schedule as required
44
on:
5-
push:
6-
pull_request:
7-
workflow_dispatch:
5+
# push:
6+
# pull_request:
7+
# workflow_dispatch:
88

99
jobs:
1010
win:

0 commit comments

Comments
 (0)