Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions .github/workflows/Pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ jobs:
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'llvm' }
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'llvm-jit'}
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'gcc' }
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'mcode' }
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'llvm' }
### - {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'mcode' } # discontinued platform and version by GitHub
### - {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'llvm' } # discontinued platform and version by GitHub
### - {icon: '🍏', name: 'macOS', image: 'macos-14', runtime: '', backend: 'mcode' } # mcode not supported on aarch64
- {icon: '🍏', name: 'macOS', image: 'macos-14', runtime: '', backend: 'llvm' }
### - {icon: '🍏', name: 'macOS', image: 'macos-15', runtime: '', backend: 'mcode' } # mcode not supported on aarch64
Expand All @@ -52,15 +52,18 @@ jobs:
version:
- {install: '5.0.1', expected: '5.0.1'}
- {install: '5.1.1', expected: '5.1.1'}
- {install: 'latest', expected: '5.1.1'}
- {install: 'nightly', expected: '6.0.0-dev'}
- {install: '6.0.0', expected: '6.0.0'}
- {install: 'latest', expected: '6.0.0'}
- {install: 'nightly', expected: '7.0.0-dev'}
option:
- {can-fail: false}
exclude:
- {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
- {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
- {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
- {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
- {os: {runtime: "mingw64", backend: "llvm-jit"}, version: {expected: "5.1.1"}} # LLVM-JIT version causes a non-zero exit
- {os: {runtime: "ucrt64", backend: "llvm-jit"}, version: {expected: "5.1.1"}} # LLVM-JIT version causes a non-zero exit
include:
# old version with retrofitted inventory.json
- {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: '🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'mcode'}, option: {can-fail: false}}
Expand All @@ -72,10 +75,12 @@ jobs:
- {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 }}
- {version: {install: '5.0.1', expected: '5.0.1'}, os: {icon: '❌🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm'}, option: {can-fail: true }}
- {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 }}
- {version: {install: '5.1.1', expected: '5.1.1'}, os: {icon: '❌🪟🟦', name: 'Windows', image: 'windows-2025', runtime: 'mingw64', backend: 'llvm-jit'}, option: {can-fail: true }}
- {version: {install: '5.1.1', expected: '5.1.1'}, os: {icon: '❌🪟🟨', name: 'Windows', image: 'windows-2025', runtime: 'ucrt64', backend: 'llvm-jit'}, option: {can-fail: true }}
# error message testing (outdated os version, wrong backend, unsupported backend, unsupported runtime, ...)
- {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🐧', name: 'Ubuntu', image: 'ubuntu-22.04', runtime: '', backend: 'mcode'}, option: {can-fail: true }}
- {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'xcode'}, option: {can-fail: true }}
- {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'gcc' }, option: {can-fail: true }}
### - {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'gcc' }, option: {can-fail: true }} # discontinued platform and version by GitHub
- {version: {install: 'nightly', expected: '5.0.0'}, os: {icon: '❌🪟⬛', name: 'Windows', image: 'windows-2025', runtime: 'mingw32', backend: 'mcode'}, option: {can-fail: true }}

continue-on-error: ${{ matrix.option.can-fail }}
Expand All @@ -96,7 +101,7 @@ jobs:
# fi

- name: ⏬ Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: 🟦 Setup MSYS2 for ${{ matrix.os.runtime }}
uses: msys2/setup-msys2@v2
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ This composite action, installs GHDL in a GitHub Action's workflow job.
## Features

* Select GHDL version:
* tagged release like `5.0.1`, `5.1.1`, or
* latest release, currently `5.1.1`, or
* tagged release like `5.0.1`, `5.1.1`, `6.0.0`, or
* latest release, currently `6.0.0`, or
* `nightly` release (rolling release).
* `latest` release (retrieved from latest *nightly release*'s `inventory.json`).
* Select GHDL backend:
Expand All @@ -23,8 +23,8 @@ This composite action, installs GHDL in a GitHub Action's workflow job.
* Activate an investigation mode (check and show GHDL installation, ...).
* Supported runner OS' provided by GitHub (automatically detected):
* Ubuntu 24.04 (LTS),
* macOS-13 (x86-64),
* macOS-14 (aarch64)
* macOS-14 (aarch64),
* macOS-15 (aarch64),
* Windows Server 2025.

## Usage
Expand All @@ -42,7 +42,7 @@ jobs:
investigate: true

GHDL-on-macOS:
runs-on: macOS-14
runs-on: macOS-15
steps:
- name: Run VHDL Simulation
uses: ghdl/setup-ghdl@v1
Expand All @@ -51,7 +51,7 @@ jobs:
backend: llvm

GHDL-on-Windows:
runs-on: windows-2022
runs-on: windows-2025
steps:
- name: Run VHDL Simulation
uses: ghdl/setup-ghdl@v1
Expand All @@ -60,7 +60,7 @@ jobs:
backend: mcode

GHDL-on-Windows-with-UCRT64:
runs-on: windows-2022
runs-on: windows-2025
steps:
- name: 🟦 Setup MSYS2 for UCRT64
uses: msys2/setup-msys2@v2
Expand All @@ -81,7 +81,7 @@ jobs:

| Parameter | Required | Default | Description |
|---------------------|:--------:|-------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| `version` | no | `'nightly'` | A tagged GHDL version starting at `v5.1.1`, `latest` or `nightly`. |
| `version` | no | `'nightly'` | A tagged GHDL version (starting at `v5.1.1`), `latest` or `nightly`. |
| `backend` | no | `'mcode'` | GHDL backend: `llvm`, `llvm-jit`, `mcode`, `gcc`. |
| `runtime` | no | `''` | If runner OS is Windows, a MSYS2 runtime can be selected (`mingw64`, `ucrt64`). If not set, Windows native is used (not MSYS2 environment). |
| `install-directory` | no | `'install'` | Local installation directory, in case an archive asset is downloaded and extracted. |
Expand Down
4 changes: 4 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ runs:
if: runner.os == 'Windows' && inputs.runtime == ''
shell: bash
run: |
# Download and install jq
ANSI_LIGHT_BLUE=$'\x1b[94m'
ANSI_NOCOLOR=$'\x1b[0m'

printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Download 'jq' and copy to Git Bash ..."
curl -L --fail https://github.com/jqlang/jq/releases/latest/download/jq-win64.exe -o /usr/bin/jq.exe
printf "::endgroup::\n"
Expand Down
7 changes: 4 additions & 3 deletions example/HelloWorld.vhdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ architecture test of HelloWorld is
begin
process
begin
wait for 10 ns;
report "Hello World" severity note;
std.env.stop;
wait for 10 ns;
report "Hello World" severity note;
std.env.finish;
wait;
end process;
end architecture;
Loading