1
1
# The MIT License (MIT)
2
2
#
3
- # Copyright © 2024 The GHDL Developers
3
+ # Copyright © 2025 The GHDL Developers
4
4
#
5
5
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
6
6
# documentation files (the “Software”), to deal in the Software without restriction, including without limitation the
@@ -28,35 +28,55 @@ jobs:
28
28
fail-fast : false
29
29
matrix :
30
30
os :
31
+ # ## - {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'mcode' } # GHDL doesn't provide assets for Ubuntu-22.04
32
+ # ## - {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'llvm' } # GHDL doesn't provide assets for Ubuntu-22.04
33
+ # ## - {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'llvm-jit'} # GHDL doesn't provide assets for Ubuntu-22.04
34
+ # ## - {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'gcc' } # GHDL doesn't provide assets for Ubuntu-22.04
31
35
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'mcode' }
32
36
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'llvm' }
33
37
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'llvm-jit'}
34
38
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'gcc' }
35
39
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'mcode' }
36
40
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'llvm' }
41
+ # ## - {icon: '🍏', name: 'macOS', image: 'macos-14', runtime: '', backend: 'mcode' } # mcode not supported on aarch64
37
42
- {icon: '🍏', name: 'macOS', image: 'macos-14', runtime: '', backend: 'llvm' }
38
- - {icon: '🪟', name: 'Windows', image: 'windows-2022', runtime: '', backend: 'mcode' }
39
- - {icon: '🪟🟦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'mcode' }
40
- - {icon: '🪟🟦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm' }
41
- - {icon: '🪟🟦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm-jit'}
42
- - {icon: '🪟🟨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'mcode' }
43
- - {icon: '🪟🟨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm' }
44
- - {icon: '🪟🟨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm-jit'}
43
+ # ## - {icon: '🍏', name: 'macOS', image: 'macos-15', runtime: '', backend: 'mcode' } # mcode not supported on aarch64
44
+ - {icon: '🍏', name: 'macOS', image: 'macos-15', runtime: '', backend: 'llvm' }
45
+ - {icon: '🪟', name: 'Windows', image: 'windows-2025', runtime: '', backend: 'mcode' }
46
+ - {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'mcode' }
47
+ - {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm' }
48
+ - {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm-jit'}
49
+ - {icon: '🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'mcode' }
50
+ - {icon: '🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm' }
51
+ - {icon: '🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm-jit'}
45
52
version :
46
53
- {install: '5.0.1', expected: '5.0.1'}
47
- - {install: 'latest', expected: '5.0.1'}
54
+ - {install: '5.1.1', expected: '5.1.1'}
55
+ - {install: 'latest', expected: '5.1.1'}
48
56
- {install: 'nightly', expected: '6.0.0-dev'}
49
57
option :
50
58
- {can-fail: false}
59
+ exclude :
60
+ - {os: {runtime: "mingw64", backend: "llvm"}, version: {expected: "5.0.1"}} # excluded due to LLVM incompatibility (v5.0.1 used LLVM-19, MSYS2 uses LLVM-20+) -> purged from release
61
+ - {os: {runtime: "mingw64", backend: "llvm-jit"}, version: {expected: "5.0.1"}} # excluded due to LLVM incompatibility (v5.0.1 used LLVM-19, MSYS2 uses LLVM-20+) -> purged from release
62
+ - {os: {runtime: "ucrt64", backend: "llvm"}, version: {expected: "5.0.1"}} # excluded due to LLVM incompatibility (v5.0.1 used LLVM-19, MSYS2 uses LLVM-20+) -> purged from release
63
+ - {os: {runtime: "ucrt64", backend: "llvm-jit"}, version: {expected: "5.0.1"}} # excluded due to LLVM incompatibility (v5.0.1 used LLVM-19, MSYS2 uses LLVM-20+) -> purged from release
51
64
include :
52
- - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'mcode'}, option: {can-fail: false}}
53
- - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm'}, option: {can-fail: false}}
54
- - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'mcode'}, option: {can-fail: false}}
55
- - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm'}, option: {can-fail: false}}
56
- - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-20.04', runtime: '', backend: 'mcode'}, option: {can-fail: true }}
57
- - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'xcode'}, option: {can-fail: true }}
58
- - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'gcc' }, option: {can-fail: true }}
59
- - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '🪟⬛', name: 'Windows', image: 'windows-2022', runtime: 'mingw32', backend: 'mcode'}, option: {can-fail: true }}
65
+ # old version with retrofitted inventory.json
66
+ - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'mcode'}, option: {can-fail: false}}
67
+ - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm'}, option: {can-fail: false}}
68
+ - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'mcode'}, option: {can-fail: false}}
69
+ - {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm'}, option: {can-fail: false}}
70
+ # because of LLVM incompatibility
71
+ - {version: {install: '5.0.1', expected: '5.0.1'}, os: {icon: '❌🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm'}, option: {can-fail: true }}
72
+ - {version: {install: '5.0.1', expected: '5.0.1'}, os: {icon: '❌🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm-jit'}, option: {can-fail: true }}
73
+ - {version: {install: '5.0.1', expected: '5.0.1'}, os: {icon: '❌🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm'}, option: {can-fail: true }}
74
+ - {version: {install: '5.0.1', expected: '5.0.1'}, os: {icon: '❌🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm-jit'}, option: {can-fail: true }}
75
+ # error message testing (outdated os version, wrong backend, unsupported backend, unsupported runtime, ...)
76
+ - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'mcode'}, option: {can-fail: true }}
77
+ - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'xcode'}, option: {can-fail: true }}
78
+ - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'gcc' }, option: {can-fail: true }}
79
+ - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🪟⬛', name: 'Windows', image: 'windows-2025', runtime: 'mingw32', backend: 'mcode'}, option: {can-fail: true }}
60
80
61
81
continue-on-error : ${{ matrix.option.can-fail }}
62
82
@@ -65,15 +85,18 @@ jobs:
65
85
shell : bash
66
86
67
87
steps :
68
- - name : Detect correct shell
69
- id : detect
70
- run : |
71
- # Detect correct shell
72
- if [[ "${{ matrix.os.name }}" == "Windows" && "${{ matrix.os.runtime }}" != "" ]]; then
73
- printf "shell=msys2 {0}" >> $GITHUB_OUTPUT
74
- else
75
- printf "shell=bash" >> $GITHUB_OUTPUT
76
- fi
88
+ # - name: Detect correct shell
89
+ # id: detect
90
+ # run: |
91
+ # # Detect correct shell
92
+ # if [[ "${{ matrix.os.name }}" == "Windows" && "${{ matrix.os.runtime }}" != "" ]]; then
93
+ # printf "shell=msys2 {0}" >> $GITHUB_OUTPUT
94
+ # else
95
+ # printf "shell=bash" >> $GITHUB_OUTPUT
96
+ # fi
97
+
98
+ - name : ⏬ Checkout repository
99
+ uses : actions/checkout@v5
77
100
78
101
- name : 🟦 Setup MSYS2 for ${{ matrix.os.runtime }}
79
102
uses : msys2/setup-msys2@v2
@@ -82,18 +105,17 @@ jobs:
82
105
msystem : ${{ matrix.os.runtime }}
83
106
update : true
84
107
85
- - name : Setup GHDL ${{ matrix.os.backend }}
108
+ - name : Setup GHDL ( ${{ matrix.os.backend }}) ${{ matrix.version.install }} on ${{ matrix.os.runtime }}
86
109
uses : ghdl/setup-ghdl@main
87
110
with :
88
111
version : ${{ matrix.version.install }}
89
112
backend : ${{ matrix.os.backend }}
90
113
runtime : ${{ matrix.os.runtime }}
91
114
investigate : true
92
115
93
- - name : Verify on Linux, macOS and Windows (native)
116
+ - name : Verify GHDL version on Linux, macOS and Windows (native)
94
117
if : matrix.os.name == 'Ubuntu' || matrix.os.name == 'macOS' || ( matrix.os.name == 'Windows' && matrix.os.runtime == '' )
95
118
run : |
96
-
97
119
ANSI_LIGHT_RED=$'\x1b[91m'
98
120
ANSI_LIGHT_GREEN=$'\x1b[92m'
99
121
ANSI_NOCOLOR=$'\x1b[0m'
@@ -111,7 +133,7 @@ jobs:
111
133
ghdl --version
112
134
fi
113
135
114
- - name : Verify on Windows + MSYS2
136
+ - name : Verify GHDL version on Windows + MSYS2
115
137
if : matrix.os.name == 'Windows' && matrix.os.runtime != ''
116
138
shell : " msys2 {0}"
117
139
run : |
@@ -132,9 +154,32 @@ jobs:
132
154
ghdl --version
133
155
fi
134
156
135
- - name : Verify on Windows (native) with Powershell
157
+ - name : Verify GHDL version on Windows (native) with Powershell
136
158
if : matrix.os.name == 'Windows' && matrix.os.runtime == ''
137
159
shell : powershell
138
160
run : |
139
161
echo $(Get-Command ghdl).Source
140
162
ghdl --version
163
+
164
+ - name : Check HelloWorld example on Linux, macOS and Windows (native)
165
+ if : matrix.os.name == 'Ubuntu' || matrix.os.name == 'macOS' || ( matrix.os.name == 'Windows' && matrix.os.runtime == '' )
166
+ run : |
167
+ ghdl -a --std=08 example/HelloWorld.vhdl
168
+ ghdl -e --std=08 HelloWorld
169
+ ghdl -r --std=08 HelloWorld
170
+
171
+ - name : Check HelloWorld example on Windows + MSYS2
172
+ if : matrix.os.name == 'Windows' && matrix.os.runtime != ''
173
+ shell : " msys2 {0}"
174
+ run : |
175
+ ghdl -a --std=08 example/HelloWorld.vhdl
176
+ ghdl -e --std=08 HelloWorld
177
+ ghdl -r --std=08 HelloWorld
178
+
179
+ - name : Check HelloWorld example on Windows (native) with Powershell
180
+ if : matrix.os.name == 'Windows' && matrix.os.runtime == ''
181
+ shell : powershell
182
+ run : |
183
+ ghdl -a --std=08 example/HelloWorld.vhdl
184
+ ghdl -e --std=08 HelloWorld
185
+ ghdl -r --std=08 HelloWorld
0 commit comments