Skip to content

v1.1.1

v1.1.1 #105

Workflow file for this run

# The MIT License (MIT)
#
# Copyright Β© 2024 The GHDL Developers
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the β€œSoftware”), to deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
# persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED β€œAS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: Verification of setup-ghdl
on:
push:
workflow_dispatch:
jobs:
Setup-GHDL-Nightly:
name: ${{ matrix.os.icon }} GHDL ${{ matrix.version.install }} ${{ matrix.os.backend }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-20.04', runtime: '', backend: 'mcode'} # not supported
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'xcode'} # not supported
- {icon: '🐧', name: 'Ubuntu', image: 'ubuntu-24.04', runtime: '', backend: 'mcode'}
- {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: 'gcc'} # not supported
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'mcode'}
- {icon: '🍎', name: 'macOS', image: 'macos-13', runtime: '', backend: 'llvm'}
- {icon: '🍏', name: 'macOS', image: 'macos-14', runtime: '', backend: 'llvm'}
- {icon: 'πŸͺŸ', name: 'Windows', image: 'windows-2022', runtime: '', backend: 'mcode'}
- {icon: 'πŸͺŸβ¬›', name: 'Windows', image: 'windows-2022', runtime: 'mingw32', backend: 'mcode'} # not supported
- {icon: 'πŸͺŸπŸŸ¦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'mcode'}
- {icon: 'πŸͺŸπŸŸ¦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm'}
- {icon: 'πŸͺŸπŸŸ¦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm-jit'}
- {icon: 'πŸͺŸπŸŸ¨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'mcode'}
- {icon: 'πŸͺŸπŸŸ¨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm'}
- {icon: 'πŸͺŸπŸŸ¨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm-jit'}
version:
# - {install: '5.0.0', expected: '5.0.0'}
# - {install: 'latest', expected: '5.0.0'}
- {install: 'nightly', expected: '5.0.0-dev'}
include:
- {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: 'πŸͺŸπŸŸ¦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'mcode'}}
- {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: 'πŸͺŸπŸŸ¦', name: 'Windows', image: 'windows-2022', runtime: 'mingw64', backend: 'llvm'}}
- {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: 'πŸͺŸπŸŸ¨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'mcode'}}
- {version: {install: '4.1.0', expected: '4.1.0'}, os: {icon: 'πŸͺŸπŸŸ¨', name: 'Windows', image: 'windows-2022', runtime: 'ucrt64', backend: 'llvm'}}
defaults:
run:
shell: bash
steps:
- name: Detect correct shell
id: detect
run: |
# Detect correct shell
if [[ "${{ matrix.os.name }}" == "Windows" && "${{ matrix.os.runtime }}" != "" ]]; then
printf "shell=msys2 {0}" >> $GITHUB_OUTPUT
else
printf "shell=bash" >> $GITHUB_OUTPUT
fi
- name: 🟦 Setup MSYS2 for ${{ matrix.os.runtime }}
uses: msys2/setup-msys2@v2
if: matrix.os.runtime != ''
with:
msystem: ${{ matrix.os.runtime }}
update: true
- name: Setup GHDL ${{ matrix.os.backend }}
uses: ghdl/setup-ghdl@v1
with:
version: ${{ matrix.version.install }}
backend: ${{ matrix.os.backend }}
runtime: ${{ matrix.os.runtime }}
investigate: true
- name: Verify on Linux, macOS and Windows (native)
if: matrix.os.name == 'Ubuntu' || matrix.os.name == 'macOS' || ( matrix.os.name == 'Windows' && matrix.os.runtime == '' )
run: |
ANSI_LIGHT_RED=$'\x1b[91m'
ANSI_LIGHT_GREEN=$'\x1b[92m'
ANSI_NOCOLOR=$'\x1b[0m'
printf "which ghdl: %s\n" "$(which ghdl)"
expected="${{ matrix.version.expected }}"
printf "%s" "Verify GHDL version '${expected}' ... "
if [[ "$(ghdl --version | head -n 1)" =~ ${expected//./\\.} ]]; then
printf "${ANSI_LIGHT_GREEN}%s${ANSI_NOCOLOR}\n" "[OK]"
else
printf "${ANSI_LIGHT_RED}%s\${ANSI_NOCOLOR}n" "[FAILED]"
printf "::warning title=%s::%s\n" "Test-SetupGHDL" "GHDL version doesn't match."
ghdl --version
fi
- name: Verify on Windows + MSYS2
if: matrix.os.name == 'Windows' && matrix.os.runtime != ''
shell: "msys2 {0}"
run: |
ANSI_LIGHT_RED=$'\x1b[91m'
ANSI_LIGHT_GREEN=$'\x1b[92m'
ANSI_NOCOLOR=$'\x1b[0m'
printf "which ghdl: %s\n" "$(which ghdl)"
expected="${{ matrix.version.expected }}"
printf "%s" "Verify GHDL version '${expected}' ... "
if [[ "$(ghdl --version | head -n 1)" =~ ${expected//./\\.} ]]; then
printf "${ANSI_LIGHT_GREEN}%s${ANSI_NOCOLOR}\n" "[OK]"
else
printf "${ANSI_LIGHT_RED}%s${ANSI_NOCOLOR}\n" "[FAILED]"
printf "::warning title=%s::%s\n" "Test-SetupGHDL" "GHDL version doesn't match."
ghdl --version
fi
- name: Verify on Windows (native) with Powershell
if: matrix.os.name == 'Windows' && matrix.os.runtime == ''
shell: powershell
run: |
echo $(Get-Command ghdl).Source
ghdl --version