aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-01-22 17:44:40 +0100
committerTristan Gingold <tgingold@free.fr>2023-01-22 17:44:40 +0100
commited54e7f29fcadd7c443a5cf708b0723a82fa27aa (patch)
tree7e67c7ea78982defced72519802ecc0be8fd2203 /.github
parent74d3b062b30b42a5f54e97bc4db344ecd7febe81 (diff)
downloadghdl-ed54e7f29fcadd7c443a5cf708b0723a82fa27aa.tar.gz
ghdl-ed54e7f29fcadd7c443a5cf708b0723a82fa27aa.tar.bz2
ghdl-ed54e7f29fcadd7c443a5cf708b0723a82fa27aa.zip
gha: build pltaform wheel
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/Test.yml496
1 files changed, 271 insertions, 225 deletions
diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml
index 03e8935de..de4ecb53d 100644
--- a/.github/workflows/Test.yml
+++ b/.github/workflows/Test.yml
@@ -11,16 +11,18 @@ env:
jobs:
+# Convention for the names:
+# lin, osx, win, msys2: build package for the platform
+# *-test: test on the platform
+
#
-# Doc
+# Generate and upload doc
#
-
gnatdoc:
name: '📚 gnatdoc'
runs-on: ubuntu-latest
steps:
-
- name: '🧰 Checkout'
uses: actions/checkout@v3
@@ -38,6 +40,9 @@ jobs:
name: gnatdoc
path: gnatdoc
+#
+# Upload Build The Doc
+#
doc:
needs: gnatdoc
name: '📓 Docs'
@@ -80,15 +85,13 @@ jobs:
doc/_build/man
#
-# pyGHDL Bindings, Formatting and Wheel
+# pyGHDL Bindings, Formatting and pure wheel
#
-
pyGHDL:
name: '🐍 pyGHDL'
runs-on: ubuntu-latest
steps:
-
- name: '🧰 Checkout'
uses: actions/checkout@v3
@@ -133,6 +136,7 @@ jobs:
#
gpl:
+ if: false
name: '🚧🚦🐧 GPL mcode'
runs-on: ubuntu-latest
@@ -144,9 +148,8 @@ jobs:
- run: TASK=bullseye+mcode ./scripts/ci-run.sh -c --gplcompat
#
-# GNU/Linux
+# Build for GNU/Linux
#
-
lin:
name: '🚧🚦🐧 Ubuntu ${{ matrix.os }} ${{ matrix.backend }}'
runs-on: ubuntu-${{ matrix.os }}.04
@@ -163,7 +166,6 @@ jobs:
- { os: 22, backend: gcc-11.2.0 }
steps:
-
- name: '🧰 Checkout'
uses: actions/checkout@v3
@@ -180,9 +182,8 @@ jobs:
if-no-files-found: error
#
-# MacOS
+# Build for MacOS
#
-
osx:
name: '🚧🚦🍎 macOS ${{ matrix.os }} ${{ matrix.backend }}'
runs-on: 'macOS-${{ matrix.os }}'
@@ -198,7 +199,6 @@ jobs:
- llvm
steps:
-
- name: '🧰 Checkout'
uses: actions/checkout@v3
@@ -231,23 +231,19 @@ jobs:
if-no-files-found: error
#
-# Windows MSYS2 Build
+# Pure Windows Build (on MSYS2) - create zip (and also pre-wheel zip)
#
-
- win-msys2-build-package:
- name: '🚧${{ matrix.icon }} ${{ matrix.sys }} ${{ matrix.pkg }}'
+ win:
+ name: '🚧${{ matrix.icon }} ${{ matrix.sys }} (pure-build)'
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
-# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32' } ! not yet functional
- - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64' }
- - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64' } #! experimental
- - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32' }
- - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64' } #! simulation with mcode is not yet supported on win64
- - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64' } #! experimental; simulation with mcode is not yet supported on win64
+ - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32', arch: 'i686' }
+# - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64', arch: 'x86_64' } #! simulation with mcode is not yet supported on win64
+ - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64', arch: 'ucrt-x86_64' } #! experimental; simulation with mcode is not yet supported on win64
env:
MINGW_ARCH: ${{ matrix.sys }}
@@ -256,14 +252,15 @@ jobs:
shell: msys2 {0}
steps:
-
- name: '${{ matrix.icon }} Setup MSYS2'
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
update: true
- install: base-devel git
- pacboy: toolchain:p
+ install: base-devel git mingw-w64-${{matrix.arch}}-gcc-ada mingw-w64-${{matrix.arch}}-zlib zip
+ pacboy: >
+ toolchain:p
+ python-pip:p
- name: '⚙ git config'
run: git config --global core.autocrlf input
@@ -277,275 +274,355 @@ jobs:
- name: '🚧 Build package'
run: |
- cd scripts/msys2-${{ matrix.pkg }}
- makepkg-mingw --noconfirm --noprogressbar -sCLf
- for item in src pkg; do
- tar czf msys2-${{ matrix.pkg }}."$item".tar.gz "$item"
- done
-
- - name: '📤 Upload artifact: builddir'
+ pip3 install pefile
+ mkdir builddir
+ cd builddir
+ ../configure --prefix='/GHDL' LDFLAGS="-static -Wl,--stack=8388608" --enable-libghdl
+ make
+ mkdir -p 'GHDL'
+ make install DESTDIR=.
+ # No need to add dll dependencies for ghdl, as it is compiled
+ # with -static
+ make python-wheel
+ zip pre-wheel-${{matrix.sys}}.zip -r dist-wheel setup-standalone.py
+ zip ghdl-${{matrix.sys}}.zip -r GHDL
+
+ - name: '📤 Upload artifact: pre-wheel'
uses: actions/upload-artifact@v3
with:
- name: ${{ matrix.sys }}-${{ matrix.pkg }}-builddir
+ name: ${{ matrix.sys }}-pre-wheel
path: |
- scripts/msys2-${{ matrix.pkg }}/msys2-${{ matrix.pkg }}.src.tar.gz
- scripts/msys2-${{ matrix.pkg }}/msys2-${{ matrix.pkg }}.pkg.tar.gz
+ builddir/pre-wheel-${{matrix.sys}}.zip
- - name: '📤 Upload artifact: package'
+ - name: '📤 Upload artifact: zip pure-win'
uses: actions/upload-artifact@v3
with:
- name: ${{ matrix.sys }}-${{ matrix.pkg }}
- path: scripts/msys2-${{ matrix.pkg }}/mingw-*ghdl*.pkg.tar.zst
- if-no-files-found: error
+ name: ${{ matrix.sys }}-zip-win
+ path: |
+ builddir/ghdl-${{matrix.sys}}.zip
#
-# Windows MSYS2 Test
+# Create pure-Windows CPython pyGHDL platform wheel (from the pre-wheel zip)
#
-
- win-msys2-test:
- name: '🚦${{ matrix.sys.icon }} ${{ matrix.sys.sys }} ${{ matrix.sys.pkg }} ${{ matrix.suite }}'
+ win-wheel:
+ name: '🚦🐍${{ matrix.icon }} ${{ matrix.sys }} (pyGHDL-wheel)'
runs-on: windows-latest
needs:
- - win-msys2-build-package
+ - win
strategy:
fail-fast: false
matrix:
- sys:
-# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32' } ! not yet functional
- - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64' }
- - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64' } #! experimental
- - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32' }
-# - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64' } ! simulation with mcode is not yet supported on win64
-# - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64' } ! experimental; simulation with mcode is not yet supported on win64
-
- suite:
- - 'sanity pyunit vpi vhpi'
- - 'gna'
- - 'vests'
- - 'synth'
+ include:
+ - {icon: '🟪', sys: 'MINGW32', pyarch: x86 }
+# - {icon: '🟦', sys: 'MINGW64', pyarch: x64 }
+ - {icon: '🟨', sys: 'UCRT64', pyarch: x64 }
defaults:
run:
- shell: msys2 {0}
+ shell: pwsh
steps:
-
- - name: '${{ matrix.sys.icon }} Setup MSYS2'
- uses: msys2/setup-msys2@v2
+ - name: '🐍 Setup Python'
+ uses: actions/setup-python@v4
with:
- msystem: ${{ matrix.sys.sys }}
- update: true
- pacboy: >
- diffutils:p
- gcc:p
- python-pip:p
- python-setuptools:p
-
- - name: '⚙ git config'
- run: git config --global core.autocrlf input
- shell: bash
-
- - name: '🧰 Checkout'
- uses: actions/checkout@v3
+ python-version: '3.10'
+ architecture: ${{ matrix.pyarch }}
- name: '📥 Download artifact: package'
uses: actions/download-artifact@v3
with:
path: artifact
- name: ${{ matrix.sys.sys }}-${{ matrix.sys.pkg }}
+ name: ${{ matrix.sys }}-pre-wheel
- - name: '🛠 Install package and 🐍 Python dependencies'
+ - name: '🐍 Build python wheel'
run: |
- pacman --noconfirm -U artifact/mingw-w64-*-ghdl-${{ matrix.sys.pkg }}-*.zst
- pip3 install -r testsuite/requirements.txt
+ pip3 install wheel
+ pip3 install pyTooling
+ unzip artifact/pre-wheel-${{ matrix.sys }}.zip
+ python3 ./setup-standalone.py bdist_wheel
+ dir dist
- - name: '🚦 Test package'
- run: GHDL=ghdl ./testsuite/testsuite.sh ${{ matrix.suite }}
+ - name: '🐍 Sanity check of the python wheel'
+ run: |
+ pip3 install -v (get-item dist\pyGHDL-*.whl)
+ dir -r ${env:Python3_ROOT_DIR}\Lib\site-packages\pyGHDL
+ python3 -m pyGHDL.cli.lsp --version
+ python3 -m pyGHDL.cli.dom version
+
+ - name: '📤 Upload artifact: wheel'
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ matrix.sys }}-wheel
+ path: |
+ dist/pyGHDL-*.whl
+
+ - name: '${{ matrix.icon }} Setup MSYS2'
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{ matrix.sys }}
+ update: true
#
-# Windows Generate Standalone ZipFile
+# Windows Test of standalone zip
#
-
- win-generate-standalone-zip:
- name: '🚧🥡${{ matrix.icon }} ${{ matrix.sys }} mcode'
+ win-test:
+ name: '🚦🐍🥡${{ matrix.icon }} ${{ matrix.sys }} (test sa)'
runs-on: windows-latest
needs:
- - win-msys2-build-package
+ - win
strategy:
fail-fast: false
matrix:
include:
- {icon: '🟪', sys: 'MINGW32' }
- - {icon: '🟦', sys: 'MINGW64' } #! simulation with mcode is not yet supported on win64
- - {icon: '🟨', sys: 'UCRT64' } #! experimental; simulation with mcode is not yet supported on win64
+# - {icon: '🟦', sys: 'MINGW64' } #! simulation with mcode is not yet supported on win64
+# - {icon: '🟨', sys: 'UCRT64' } #! experimental; simulation with mcode is not yet supported on win64
defaults:
run:
- shell: msys2 {0}
+ shell: pwsh
steps:
+ - name: '📥 Download artifact: package'
+ uses: actions/download-artifact@v3
+ with:
+ path: artifact
+ name: ${{ matrix.sys }}-zip-win
+
+ - name: '⚙ Extract package'
+ run: |
+ dir
+ unzip artifact\ghdl-${{matrix.sys}}.zip
+ dir
+
+ - name: '🛠 Set envvars'
+ run: |
+ $GHDL_DIR = (pwd).Path + '\GHDL\bin'
+ echo "GHDL=${GHDL_DIR}\ghdl.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "$GHDL_DIR" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+ dir $GHDL_DIR
+
+
+ - name: '🛠 Sanity check'
+ run: |
+ echo "GHDL is ${env:GHDL}"
+ dir ${env:GHDL}
+ & ${env:GHDL} version
+ echo "sha: ${{github.sha}}"
+ echo "head_ref: ${{github.head_ref}}"
+ echo "ref_name: ${{github.ref_name}}"
+
+ - name: '⚙ git config'
+ run: |
+ dir
+ dir ${env:GHDL}
+ git config --global core.autocrlf input
+
+ - name: '🧰 Checkout'
+ uses: actions/checkout@v3
+ with:
+ path: checkout
- name: '${{ matrix.icon }} Setup MSYS2'
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
update: true
- install: >-
- tree
- zstd
- zip
- tar
+ pacboy: >
+ diffutils:p
+ gcc:p
- - name: '⚙ git config'
- run: git config --global core.autocrlf input
- shell: bash
+ - name: '🚦 Testsuite for ghdl'
+ shell: msys2 {0}
+ run: |
+ set -x
+ pwd
+ ls -l
+ echo "PATH: $PATH"
+ echo "GHDL: $GHDL"
+ cygghdl="$(cygpath -u $GHDL)"
+ echo "cyg GHDL: $cygghdl"
+ $cygghdl -v
+ GHDL="$cygghdl"
+ PATH="$PATH:$(dirname $cygghdl)"
+ echo "PATH: $PATH"
+ ghdl version
+ cd checkout
+ ./testsuite/testsuite.sh gna
- - name: '🧰 Checkout'
- uses: actions/checkout@v3
+#
+# Windows Test of pyGHDL platform wheel
+#
+ win-test-wheel:
+ name: '🚦🐍🥡${{ matrix.icon }} ${{ matrix.sys }} (test sa py)'
+ runs-on: windows-latest
+
+ needs:
+ - win-wheel
+
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - {icon: '🟪', sys: 'MINGW32', pyarch: x86 }
+# - {icon: '🟦', sys: 'MINGW64', pyarch: x64 }
+ - {icon: '🟨', sys: 'UCRT64', pyarch: x64 }
+
+ defaults:
+ run:
+ shell: pwsh
+
+ steps:
+ - name: '🐍 Setup Python'
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.10'
+ architecture: ${{ matrix.pyarch }}
- name: '📥 Download artifact: package'
uses: actions/download-artifact@v3
with:
path: artifact
- name: ${{ matrix.sys }}-mcode
+ name: ${{ matrix.sys }}-wheel
- - name: '🛠 Install package'
- run: pacman --noconfirm -U artifact/mingw-w64-*-ghdl-mcode-*.zst
+ - name: '🐍 Sanity check of the python wheel'
+ run: |
+ pip3 install -v (get-item artifact\pyGHDL-*.whl)
- - name: '🥡 Generate standalone zipfile'
+ - name: '⚙ git config'
run: |
- _zipdir='${{ matrix.sys }}-mcode-standalone'
- mkdir -p "${_zipdir}"-extract
- tar xf artifact/mingw-w64-*-ghdl-mcode-*.zst -C "${_zipdir}"-extract
- cd "${_zipdir}-extract/${{ matrix.sys }}"/bin
- ../../../scripts/msys2-mcode/GetStandaloneDeps.sh
- cd ../../..
- mv "${_zipdir}"-extract/${{ matrix.sys }} "${_zipdir}"
- tree "${_zipdir}"
- zip "${_zipdir}".zip -r "${_zipdir}"
-
- - name: '📤 Upload artifact: zipfile'
- uses: actions/upload-artifact@v3
+ dir
+ dir ${env:GHDL}
+ git config --global core.autocrlf input
+
+ - name: '🧰 Checkout'
+ uses: actions/checkout@v3
with:
- name: ${{ matrix.sys }}-mcode-standalone
- path: ${{ matrix.sys }}-mcode-standalone.zip
+ path: checkout
+
+ - name: '🚦 pyunit tests'
+ run: |
+ pip3 install pytest
+ dir checkout
+ cd checkout/testsuite
+ python3 -m pytest pyunit
#
-# Windows CPython pyGHDL Test with MSYS2 installation
+# Windows MSYS2 Build
#
-
- win-cpython-msys2:
- name: '🚦🐍${{ matrix.icon }} ${{ matrix.sys }} ${{ matrix.pkg }}'
+ msys2:
+ name: '🚧${{ matrix.icon }} ${{ matrix.sys }} ${{ matrix.pkg }} (build)'
runs-on: windows-latest
- needs:
- - win-msys2-build-package
-
strategy:
fail-fast: false
matrix:
include:
-# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32', pyarch: x86 }, ! not yet functional
- - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64', pyarch: x64 }
- - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64', pyarch: x64 } #! experimental
- - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32', pyarch: x86 }
- - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64', pyarch: x64 } #! simulation with mcode is not yet supported on win64
- - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64', pyarch: x64 } #! experimental; simulation with mcode is not yet supported on win64
+# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32' } ! not yet functional
+ - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64' }
+# - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64' } #! experimental
+ - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32' }
+# - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64' } #! simulation with mcode is not yet supported on win64
+ - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64' } #! experimental; simulation with mcode is not yet supported on win64
+ env:
+ MINGW_ARCH: ${{ matrix.sys }}
defaults:
run:
- shell: pwsh
+ shell: msys2 {0}
steps:
-
- name: '${{ matrix.icon }} Setup MSYS2'
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
update: true
+ install: base-devel git
+ pacboy: toolchain:p
- name: '⚙ git config'
run: git config --global core.autocrlf input
+ shell: bash
- name: '🧰 Checkout'
uses: actions/checkout@v3
-
- - name: '📥 Download artifact: package'
- uses: actions/download-artifact@v3
with:
- path: artifact
- name: ${{ matrix.sys }}-${{ matrix.pkg }}
-
- - name: '🛠 Install package'
- shell: msys2 {0}
- run: |
- pacman --noconfirm -U artifact/mingw-w64-*-ghdl-${{ matrix.pkg }}-*.zst
+ # The command 'git describe' (used for version) needs the history.
+ fetch-depth: 0
- - name: '🛠 Set envvars'
+ - name: '🚧 Build package'
run: |
- $GHDL = (& msys2 -c 'cygpath -w /') + '${{ matrix.sys }}\bin\ghdl.exe'
- $GHDL_HASH = (& $GHDL version hash)
- echo "GHDL_HASH=$GHDL_HASH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- $GHDL_PREFIX = (& msys2 -c 'cygpath -w /') + '${{ matrix.sys }}\lib\ghdl\'
- echo "GHDL_PREFIX=$GHDL_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ cd scripts/msys2-${{ matrix.pkg }}
+ makepkg-mingw --noconfirm --noprogressbar -sCLf
+ for item in src pkg; do
+ tar czf msys2-${{ matrix.pkg }}."$item".tar.gz "$item"
+ done
- - name: '🐍 Setup Python'
- uses: actions/setup-python@v4
+ - name: '📤 Upload artifact: builddir'
+ uses: actions/upload-artifact@v3
with:
- python-version: '3.10'
- architecture: ${{ matrix.pyarch }}
-
- - name: '🐍 Install Python dependencies'
- run: pip3 install -r testsuite/requirements.txt
-
- - name: '🚦 Test installation of pyGHDL through pip'
- run: pip install ("git+https://github.com/ghdl/ghdl.git@" + $env:GHDL_HASH)
-
- - name: '🚦 Test pyGHDL entrypoints'
- run: |
- ghdl-dom help
- ghdl-ls --help
+ name: ${{ matrix.sys }}-${{ matrix.pkg }}-builddir
+ path: |
+ scripts/msys2-${{ matrix.pkg }}/msys2-${{ matrix.pkg }}.src.tar.gz
+ scripts/msys2-${{ matrix.pkg }}/msys2-${{ matrix.pkg }}.pkg.tar.gz
- - name: '🚦 Test pyunit testsuite'
- run: |
- cd testsuite
- python3 -m pytest -vsrA pyunit
+ - name: '📤 Upload artifact: package'
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ matrix.sys }}-${{ matrix.pkg }}
+ path: scripts/msys2-${{ matrix.pkg }}/mingw-*ghdl*.pkg.tar.zst
+ if-no-files-found: error
#
-# Windows CPython pyGHDL Test with standalone zipfile and pyGHDL wheel
+# Windows MSYS2 Test
#
-
- win-cpython-standalone:
- name: '🚦🐍🥡${{ matrix.icon }} ${{ matrix.sys }} ${{ matrix.pkg }}'
+ msys2-test:
+ name: '🚦${{ matrix.sys.icon }} ${{ matrix.sys.sys }} ${{ matrix.sys.pkg }} ${{ matrix.suite }}'
runs-on: windows-latest
needs:
- - win-generate-standalone-zip
- - pyGHDL
+ - msys2
strategy:
fail-fast: false
matrix:
- include:
-# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32', pyarch: x86 }, ! not yet functional
-# - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64', pyarch: x64 }
-# - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64', pyarch: x64 } #! experimental
-# - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32', pyarch: x86 }
- - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64', pyarch: x64 } #! simulation with mcode is not yet supported on win64
- - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64', pyarch: x64 } #! experimental; simulation with mcode is not yet supported on win64
+ sys:
+# - {icon: '🟪', pkg: 'llvm', sys: 'MINGW32' } ! not yet functional
+# - {icon: '🟦', pkg: 'llvm', sys: 'MINGW64' }
+# - {icon: '🟨', pkg: 'llvm', sys: 'UCRT64' } #! experimental
+ - {icon: '🟪', pkg: 'mcode', sys: 'MINGW32' }
+# - {icon: '🟦', pkg: 'mcode', sys: 'MINGW64' } ! simulation with mcode is not yet supported on win64
+# - {icon: '🟨', pkg: 'mcode', sys: 'UCRT64' } ! experimental; simulation with mcode is not yet supported on win64
+
+ suite:
+ - 'sanity pyunit vpi vhpi'
+ - 'gna'
+ - 'vests'
+ - 'synth'
defaults:
run:
- shell: pwsh
+ shell: msys2 {0}
steps:
+ - name: '${{ matrix.sys.icon }} Setup MSYS2'
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{ matrix.sys.sys }}
+ update: true
+ pacboy: >
+ diffutils:p
+ gcc:p
+ python-pip:p
+ python-setuptools:p
- name: '⚙ git config'
run: git config --global core.autocrlf input
+ shell: bash
- name: '🧰 Checkout'
uses: actions/checkout@v3
@@ -554,46 +631,15 @@ jobs:
uses: actions/download-artifact@v3
with:
path: artifact
- name: ${{ matrix.sys }}-${{ matrix.pkg }}-standalone
-
- - name: '⚙ Extract package'
- run: |
- unzip artifact\${{ matrix.sys }}-${{ matrix.pkg }}-standalone.zip
- mv '${{ matrix.sys }}-${{ matrix.pkg }}-standalone\' GHDL-standalone
-
- - name: '🛠 Set envvars'
- run: |
- $GHDL = (pwd).Path + '\GHDL-standalone\bin\ghdl.exe'
- $GHDL_HASH = (& $GHDL version hash)
- echo "GHDL_HASH=$GHDL_HASH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- $GHDL_PREFIX = (pwd).Path + '\GHDL-standalone\lib\ghdl'
- echo "GHDL_PREFIX=$GHDL_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
-
- - name: '🐍 Setup Python'
- uses: actions/setup-python@v4
- with:
- python-version: '3.10'
- architecture: ${{ matrix.pyarch }}
-
- - name: '📥 Download artifact: pyGHDL'
- uses: actions/download-artifact@v3
- with:
- name: pyGHDL
-
- - name: '🐍 Install pyGHDL'
- run: |
- python -m pip install --disable-pip-version-check wheel (& ls *.whl)
- python -m pip install --disable-pip-version-check -r testsuite/requirements.txt
+ name: ${{ matrix.sys.sys }}-${{ matrix.sys.pkg }}
- - name: '🚦 Test pyGHDL entrypoints'
+ - name: '🛠 Install package and 🐍 Python dependencies'
run: |
- ghdl-dom help
- ghdl-ls --help
+ pacman --noconfirm -U artifact/mingw-w64-*-ghdl-${{ matrix.sys.pkg }}-*.zst
+ pip3 install -r testsuite/requirements.txt
- - name: '🚦 Test pyunit testsuite'
- run: |
- cd testsuite
- python3 -m pytest -vsrA pyunit
+ - name: '🚦 Test package'
+ run: GHDL=ghdl ./testsuite/testsuite.sh ${{ matrix.suite }}
#
# Release
@@ -607,10 +653,10 @@ jobs:
- doc
- lin
- osx
- - win-msys2-test
- - win-generate-standalone-zip
- - win-cpython-msys2
- - win-cpython-standalone
+ - win
+ - win-wheel
+ - win-test
+ - msys2-test
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || contains(github.ref, 'refs/tags/'))
@@ -629,7 +675,7 @@ jobs:
run: |
print('None'
if '${{ github.ref }}'.startswith('refs/tags/')
- else'::set-output name=list::**/*.zst **/*.tgz **/*-standalone.zip **/man/ghdl.1'
+ else'::set-output name=list::**/*.zst **/*.tgz **/ghdl-*.zip **/man/ghdl.1'
)
# Tagged: create a pre-release or a release (semver)
@@ -649,7 +695,7 @@ jobs:
--data '{"event_type": "ghdl"}'
#
-# Coverage (MINGW64)
+# pyGHDL Coverage (MINGW64)
#
coverage:
@@ -657,7 +703,7 @@ jobs:
runs-on: windows-latest
needs:
- - win-msys2-build-package
+ - msys2
defaults:
run: