From 835eb73d7c567c3178f6f693153bea3243ecef53 Mon Sep 17 00:00:00 2001 From: umarcor Date: Mon, 1 Feb 2021 09:09:43 +0100 Subject: ci: rename workflow 'push' to 'Test' --- .github/workflows/Test.yml | 427 +++++++++++++++++++++++++++++++++++++++++++++ .github/workflows/push.yml | 427 --------------------------------------------- README.md | 2 +- 3 files changed, 428 insertions(+), 428 deletions(-) create mode 100644 .github/workflows/Test.yml delete mode 100644 .github/workflows/push.yml diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml new file mode 100644 index 000000000..5fdf20dca --- /dev/null +++ b/.github/workflows/Test.yml @@ -0,0 +1,427 @@ +name: Test + +on: + push: + pull_request: + workflow_dispatch: + +env: + CI: true + DOCKER_BUILDKIT: 1 + +jobs: + +# +# Doc +# + + doc: + runs-on: ubuntu-latest + name: '馃摀 Docs' + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: Build ghdl/doc + run: | + docker build -t ghdl/doc . -f- <<-EOF + FROM ghdl/build:buster-mcode + ENV PYTHONPATH=/opt/ghdl/pyGHDL + RUN apt update -qq && apt install -y python3-pip gnat-gps graphviz \ + && ln -s /usr/bin/pip3 /usr/bin/pip + COPY . /opt/ghdl + RUN cd /opt/ghdl && ./configure && make && make install + EOF + + - name: Run gnatdoc + run: | + cat > run.sh <<-EOF + #!/usr/bin/env sh + gnatdoc -P./ghdl + mkdir /src/public + mv gnatdoc /src/public/gnatdoc + EOF + chmod +x run.sh + docker run --rm -v $(pwd):/src -w /opt/ghdl ghdl/doc /src/run.sh + + - name: '馃摀 BuildTheDocs (BTD)' + if: github.event_name != 'pull_request' + uses: buildthedocs/btd@v0 + with: + token: ${{ github.token }} + + #- run: nroff -man doc/_build/man/ghdl.1 + + - name: '馃摛 Upload artifact: HTML and LaTeX' + if: github.event_name != 'pull_request' + uses: actions/upload-artifact@v2 + with: + name: doc + path: | + doc/_build/html + doc/_build/latex + doc/_build/man + + - name: '馃摛 Upload artifact: ghdl.1' + if: github.event_name != 'pull_request' + uses: actions/upload-artifact@v2 + with: + path: doc/_build/man/ghdl.1 + +# +# pyGHDL +# + + fmt: + runs-on: ubuntu-latest + name: '馃悕 pyGHDL' + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: '馃悕 Setup Python' + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: Install dependencies + run: | + sudo apt update -qq + sudo apt install -y gnat + + - name: Update Python bindings + run: ./scripts/update_py_bindings.sh + + - name: Check if Python bindings changed + run: git diff --quiet || git status + +# - run: python -m pip install black +# +# - run: python -m black --check pyGHDL + +# +# GPL +# + + gpl: + runs-on: ubuntu-latest + name: '馃惂 GPL 路 mcode' + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - run: TASK=buster+mcode ./scripts/ci-run.sh -c --gplcompat + +# +# GNU/Linux +# + + lin: + strategy: + fail-fast: false + max-parallel: 4 + matrix: + include: [ + { os: 18, backend: mcode }, + { os: 20, backend: mcode }, + { os: 18, backend: llvm-5.0 }, + { os: 20, backend: llvm-10 }, + { os: 18, backend: gcc-8.3.0 }, + { os: 20, backend: gcc-9.3.0 } + ] + name: '馃惂 Ubuntu ${{ matrix.os }} 路 ${{ matrix.backend }}' + runs-on: ubuntu-${{ matrix.os }}.04 + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: Build and test GHDL in containers + run: | + TASK=ubuntu${{ matrix.os }}+${{ matrix.backend }} ./scripts/ci-run.sh -c + mv ghdl-*-ubuntu${{ matrix.os }}-*.tgz ghdl-gha-ubuntu-${{ matrix.os }}.04-$(echo ${{ matrix.backend }} | sed 's#-.*##g').tgz + + - name: '馃摛 Upload artifact: package' + uses: actions/upload-artifact@v2 + with: + path: ghdl-gha-ubuntu-*.tgz + +# +# MacOS +# + + osx: + runs-on: macOS-latest + name: '馃崕 macOS 路 mcode' + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: '鈿欙笍 Dependencies (brew)' + run: ./scripts/macosx/install-ada.sh + + - name: Build and test GHDL + run: | + PATH=$PWD/gnat/bin:$PATH + ./scripts/ci-run.sh -c + mv ghdl-*.tgz ghdl-osx-mcode.tgz + env: + TASK: macosx+mcode + GITHUB_OS: ${{ runner.os }} + + - name: '馃摛 Upload artifact: package' + uses: actions/upload-artifact@v2 + with: + path: ghdl-osx-mcode.tgz + +# +# Windows Build +# + + win-build: + runs-on: windows-latest + strategy: + fail-fast: false + max-parallel: 2 + matrix: + include: [ + {icon: '馃煢', installs: 'MINGW32', arch: i686, pkg: 'mcode' }, + #{icon: '馃煢', installs: "MINGW32", arch: i686, pkg: "llvm" }, ! Not yet functional + #{icon: '馃煪', installs: "MINGW64", arch: x86_64, pkg: "mcode" }, ! mcode is not yet supported on win64 + {icon: '馃煪', installs: 'MINGW64', arch: x86_64, pkg: 'llvm' }, + ] + name: '${{ matrix.icon }} Build 路 ${{ matrix.installs }} 路 ${{ matrix.pkg }}' + env: + MINGW_INSTALLS: ${{ matrix.installs }} + defaults: + run: + shell: msys2 {0} + steps: + + - name: '${{ matrix.icon }} Setup MSYS2' + uses: msys2/setup-msys2@v2 + with: + msystem: MSYS + update: true + install: > + base-devel + git + mingw-w64-${{ matrix.arch }}-toolchain + + - run: git config --global core.autocrlf input + shell: bash + + - name: '馃О Checkout' + uses: actions/checkout@v2 + with: + # The command 'git describe' (used for version) needs the history. + fetch-depth: 0 + + - name: Build package + run: | + cd scripts/msys2-${{ matrix.pkg }} + makepkg-mingw --noconfirm --noprogressbar -sCLf + + - name: '馃摛 Upload artifact: builddir' + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.installs }}-${{ matrix.pkg }}-builddir + path: | + scripts/msys2-${{ matrix.pkg }}/src/ + scripts/msys2-${{ matrix.pkg }}/pkg/ + + - name: '馃摛 Upload artifact: package' + uses: actions/upload-artifact@v2 + with: + path: scripts/msys2-${{ matrix.pkg }}/mingw-*ghdl*.pkg.tar.zst + +# +# Windows Test +# + + win-test: + needs: win-build + runs-on: windows-latest + strategy: + fail-fast: false + max-parallel: 8 + matrix: + sys: [ + {icon: '馃煢', installs: 'MINGW32', arch: i686, pkg: 'mcode' }, + #{icon: '馃煢', installs: "MINGW32", arch: i686, pkg: "llvm" }, ! Not yet functional + #{icon: '馃煪', installs: "MINGW64", arch: x86_64, pkg: "mcode" }, ! mcode is not yet supported on win64 + {icon: '馃煪', installs: 'MINGW64', arch: x86_64, pkg: 'llvm' }, + ] + suite: [ + 'sanity pyunit vpi', + 'gna', + 'vests', + 'synth', + ] + name: '${{ matrix.sys.icon }} Test 路 ${{ matrix.sys.installs }} 路 ${{ matrix.sys.pkg }} 路 ${{ matrix.suite }}' + defaults: + run: + shell: msys2 {0} + steps: + + - name: '${{ matrix.sys.icon }} Setup MSYS2' + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.sys.installs }} + update: true + install: > + mingw-w64-${{ matrix.sys.arch }}-diffutils + mingw-w64-${{ matrix.sys.arch }}-gcc + mingw-w64-${{ matrix.sys.arch }}-python-pip + + - run: git config --global core.autocrlf input + shell: bash + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: '馃摜 Download artifact: package' + uses: actions/download-artifact@v2 + + - name: Install package and Python dependencies + run: | + pacman --noconfirm -U artifact/mingw-w64-${{ matrix.sys.arch }}-ghdl-${{ matrix.sys.pkg }}-*.zst + pip3 install -r testsuite/requirements.txt + + - name: Test package + run: GHDL=ghdl ./testsuite/testsuite.sh ${{ matrix.suite }} + +# +# Release +# + + Release: + if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || contains(github.ref, 'refs/tags/')) + needs: [ doc, lin, osx, win-test ] + runs-on: ubuntu-latest + name: '馃摝 Release' + steps: + + - name: '馃摜 Download artifacts' + if: "!contains(github.ref, 'refs/tags/')" + uses: actions/download-artifact@v2 + + # Do not upload assets to tagged releases + - name: Set list of files for uploading + id: files + run: | + case '${{ github.ref }}' in + 'refs/tags/'*) _list='none' ;; + *) _list='artifact/*' ;; + esac + echo "::set-output name=list::${_list}" + + # Tagged: create a pre-release or a release (semver) + # Untagged: update the assets of pre-release 'nightly' + - uses: eine/tip@master + with: + token: ${{ secrets.GITHUB_TOKEN }} + tag: 'nightly' + files: ${{ steps.files.outputs.list }} + + - run: | + curl -X POST https://api.github.com/repos/ghdl/docker/dispatches \ + -H "Content-Type: application/json" \ + -H 'Accept: application/vnd.github.everest-preview+json' \ + -H "Authorization: token ${{ secrets.GHDL_BOT }}" \ + --data '{"event_type": "ghdl"}' + +# +# Coverage (MINGW64) +# + + coverage: + needs: win-build + runs-on: windows-latest + name: '馃搱 Coverage' + defaults: + run: + shell: msys2 {0} + steps: + + - name: '馃煪 Setup MSYS2' + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + install: mingw-w64-x86_64-python-pip + + - run: git config --global core.autocrlf input + shell: bash + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: '馃摜 Download artifact: package' + uses: actions/download-artifact@v2 + + - name: Install package and Python dependencies + run: | + pacman --noconfirm -U artifact/mingw-w64-x86_64-ghdl-llvm-*.zst + pip3 install -r testsuite/requirements.txt + + - name: Run tests to generate coverage report + run: | + PYTHONPATH=$(pwd) python3 -m pytest -rA --cov=.. --cov-config=.coveragerc testsuite/pyunit + + - name: Generate XML coverage report + if: always() + run: coverage xml + + - name: '馃摛 Upload artifact: coverage report' + if: always() + uses: actions/upload-artifact@v2 + with: + name: coverage + path: coverage.xml + +# +# Coverage Publish (Ubuntu) +# + + coverage-publish: + needs: coverage + if: always() && github.repository == 'ghdl/ghdl' && github.event_name != 'pull_request' + runs-on: ubuntu-latest + name: '馃摦 Publish coverage report' + steps: + + - name: '馃О Checkout' + uses: actions/checkout@v2 + + - name: '馃摜 Download artifact: coverage report' + uses: actions/download-artifact@v2 + with: + name: coverage + + - name: CodeCov + uses: codecov/codecov-action@v1 + with: + file: coverage.xml + flags: unittests + + - name: Codacy + uses: codacy/codacy-coverage-reporter-action@master + with: + project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} + coverage-reports: coverage.xml + +#--- + +# TODO: +# - Cache +# - 'gnat' directory in macOS job +# +# - Re-package a MINGW/MSYS2 package to provide a 'standalone' tarball/zipfile. +# - https://github.com/ghdl/ghdl/issues/318#issuecomment-286246287 +# +# - Add GNAT GPL 32-bit build job with mcode backend diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml deleted file mode 100644 index 0c63997bf..000000000 --- a/.github/workflows/push.yml +++ /dev/null @@ -1,427 +0,0 @@ -name: 'push' - -on: - push: - pull_request: - workflow_dispatch: - -env: - CI: true - DOCKER_BUILDKIT: 1 - -jobs: - -# -# Doc -# - - doc: - runs-on: ubuntu-latest - name: '馃摀 Docs' - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: Build ghdl/doc - run: | - docker build -t ghdl/doc . -f- <<-EOF - FROM ghdl/build:buster-mcode - ENV PYTHONPATH=/opt/ghdl/pyGHDL - RUN apt update -qq && apt install -y python3-pip gnat-gps graphviz \ - && ln -s /usr/bin/pip3 /usr/bin/pip - COPY . /opt/ghdl - RUN cd /opt/ghdl && ./configure && make && make install - EOF - - - name: Run gnatdoc - run: | - cat > run.sh <<-EOF - #!/usr/bin/env sh - gnatdoc -P./ghdl - mkdir /src/public - mv gnatdoc /src/public/gnatdoc - EOF - chmod +x run.sh - docker run --rm -v $(pwd):/src -w /opt/ghdl ghdl/doc /src/run.sh - - - name: '馃摀 BuildTheDocs (BTD)' - if: github.event_name != 'pull_request' - uses: buildthedocs/btd@v0 - with: - token: ${{ github.token }} - - #- run: nroff -man doc/_build/man/ghdl.1 - - - name: '馃摛 Upload artifact: HTML and LaTeX' - if: github.event_name != 'pull_request' - uses: actions/upload-artifact@v2 - with: - name: doc - path: | - doc/_build/html - doc/_build/latex - doc/_build/man - - - name: '馃摛 Upload artifact: ghdl.1' - if: github.event_name != 'pull_request' - uses: actions/upload-artifact@v2 - with: - path: doc/_build/man/ghdl.1 - -# -# pyGHDL -# - - fmt: - runs-on: ubuntu-latest - name: '馃悕 pyGHDL' - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: '馃悕 Setup Python' - uses: actions/setup-python@v2 - with: - python-version: 3.8 - - - name: Install dependencies - run: | - sudo apt update -qq - sudo apt install -y gnat - - - name: Update Python bindings - run: ./scripts/update_py_bindings.sh - - - name: Check if Python bindings changed - run: git diff --quiet || git status - -# - run: python -m pip install black -# -# - run: python -m black --check pyGHDL - -# -# GPL -# - - gpl: - runs-on: ubuntu-latest - name: '馃惂 GPL 路 mcode' - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - run: TASK=buster+mcode ./scripts/ci-run.sh -c --gplcompat - -# -# GNU/Linux -# - - lin: - strategy: - fail-fast: false - max-parallel: 4 - matrix: - include: [ - { os: 18, backend: mcode }, - { os: 20, backend: mcode }, - { os: 18, backend: llvm-5.0 }, - { os: 20, backend: llvm-10 }, - { os: 18, backend: gcc-8.3.0 }, - { os: 20, backend: gcc-9.3.0 } - ] - name: '馃惂 Ubuntu ${{ matrix.os }} 路 ${{ matrix.backend }}' - runs-on: ubuntu-${{ matrix.os }}.04 - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: Build and test GHDL in containers - run: | - TASK=ubuntu${{ matrix.os }}+${{ matrix.backend }} ./scripts/ci-run.sh -c - mv ghdl-*-ubuntu${{ matrix.os }}-*.tgz ghdl-gha-ubuntu-${{ matrix.os }}.04-$(echo ${{ matrix.backend }} | sed 's#-.*##g').tgz - - - name: '馃摛 Upload artifact: package' - uses: actions/upload-artifact@v2 - with: - path: ghdl-gha-ubuntu-*.tgz - -# -# MacOS -# - - osx: - runs-on: macOS-latest - name: '馃崕 macOS 路 mcode' - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: '鈿欙笍 Dependencies (brew)' - run: ./scripts/macosx/install-ada.sh - - - name: Build and test GHDL - run: | - PATH=$PWD/gnat/bin:$PATH - ./scripts/ci-run.sh -c - mv ghdl-*.tgz ghdl-osx-mcode.tgz - env: - TASK: macosx+mcode - GITHUB_OS: ${{ runner.os }} - - - name: '馃摛 Upload artifact: package' - uses: actions/upload-artifact@v2 - with: - path: ghdl-osx-mcode.tgz - -# -# Windows Build -# - - win-build: - runs-on: windows-latest - strategy: - fail-fast: false - max-parallel: 2 - matrix: - include: [ - {icon: '馃煢', installs: 'MINGW32', arch: i686, pkg: 'mcode' }, - #{icon: '馃煢', installs: "MINGW32", arch: i686, pkg: "llvm" }, ! Not yet functional - #{icon: '馃煪', installs: "MINGW64", arch: x86_64, pkg: "mcode" }, ! mcode is not yet supported on win64 - {icon: '馃煪', installs: 'MINGW64', arch: x86_64, pkg: 'llvm' }, - ] - name: '${{ matrix.icon }} Build 路 ${{ matrix.installs }} 路 ${{ matrix.pkg }}' - env: - MINGW_INSTALLS: ${{ matrix.installs }} - defaults: - run: - shell: msys2 {0} - steps: - - - name: '${{ matrix.icon }} Setup MSYS2' - uses: msys2/setup-msys2@v2 - with: - msystem: MSYS - update: true - install: > - base-devel - git - mingw-w64-${{ matrix.arch }}-toolchain - - - run: git config --global core.autocrlf input - shell: bash - - - name: '馃О Checkout' - uses: actions/checkout@v2 - with: - # The command 'git describe' (used for version) needs the history. - fetch-depth: 0 - - - name: Build package - run: | - cd scripts/msys2-${{ matrix.pkg }} - makepkg-mingw --noconfirm --noprogressbar -sCLf - - - name: '馃摛 Upload artifact: builddir' - uses: actions/upload-artifact@v2 - with: - name: ${{ matrix.installs }}-${{ matrix.pkg }}-builddir - path: | - scripts/msys2-${{ matrix.pkg }}/src/ - scripts/msys2-${{ matrix.pkg }}/pkg/ - - - name: '馃摛 Upload artifact: package' - uses: actions/upload-artifact@v2 - with: - path: scripts/msys2-${{ matrix.pkg }}/mingw-*ghdl*.pkg.tar.zst - -# -# Windows Test -# - - win-test: - needs: win-build - runs-on: windows-latest - strategy: - fail-fast: false - max-parallel: 8 - matrix: - sys: [ - {icon: '馃煢', installs: 'MINGW32', arch: i686, pkg: 'mcode' }, - #{icon: '馃煢', installs: "MINGW32", arch: i686, pkg: "llvm" }, ! Not yet functional - #{icon: '馃煪', installs: "MINGW64", arch: x86_64, pkg: "mcode" }, ! mcode is not yet supported on win64 - {icon: '馃煪', installs: 'MINGW64', arch: x86_64, pkg: 'llvm' }, - ] - suite: [ - 'sanity pyunit vpi', - 'gna', - 'vests', - 'synth', - ] - name: '${{ matrix.sys.icon }} Test 路 ${{ matrix.sys.installs }} 路 ${{ matrix.sys.pkg }} 路 ${{ matrix.suite }}' - defaults: - run: - shell: msys2 {0} - steps: - - - name: '${{ matrix.sys.icon }} Setup MSYS2' - uses: msys2/setup-msys2@v2 - with: - msystem: ${{ matrix.sys.installs }} - update: true - install: > - mingw-w64-${{ matrix.sys.arch }}-diffutils - mingw-w64-${{ matrix.sys.arch }}-gcc - mingw-w64-${{ matrix.sys.arch }}-python-pip - - - run: git config --global core.autocrlf input - shell: bash - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: '馃摜 Download artifact: package' - uses: actions/download-artifact@v2 - - - name: Install package and Python dependencies - run: | - pacman --noconfirm -U artifact/mingw-w64-${{ matrix.sys.arch }}-ghdl-${{ matrix.sys.pkg }}-*.zst - pip3 install -r testsuite/requirements.txt - - - name: Test package - run: GHDL=ghdl ./testsuite/testsuite.sh ${{ matrix.suite }} - -# -# Release -# - - Release: - if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || contains(github.ref, 'refs/tags/')) - needs: [ doc, lin, osx, win-test ] - runs-on: ubuntu-latest - name: '馃摝 Release' - steps: - - - name: '馃摜 Download artifacts' - if: "!contains(github.ref, 'refs/tags/')" - uses: actions/download-artifact@v2 - - # Do not upload assets to tagged releases - - name: Set list of files for uploading - id: files - run: | - case '${{ github.ref }}' in - 'refs/tags/'*) _list='none' ;; - *) _list='artifact/*' ;; - esac - echo "::set-output name=list::${_list}" - - # Tagged: create a pre-release or a release (semver) - # Untagged: update the assets of pre-release 'nightly' - - uses: eine/tip@master - with: - token: ${{ secrets.GITHUB_TOKEN }} - tag: 'nightly' - files: ${{ steps.files.outputs.list }} - - - run: | - curl -X POST https://api.github.com/repos/ghdl/docker/dispatches \ - -H "Content-Type: application/json" \ - -H 'Accept: application/vnd.github.everest-preview+json' \ - -H "Authorization: token ${{ secrets.GHDL_BOT }}" \ - --data '{"event_type": "ghdl"}' - -# -# Coverage (MINGW64) -# - - coverage: - needs: win-build - runs-on: windows-latest - name: '馃搱 Coverage' - defaults: - run: - shell: msys2 {0} - steps: - - - name: '馃煪 Setup MSYS2' - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW64 - update: true - install: mingw-w64-x86_64-python-pip - - - run: git config --global core.autocrlf input - shell: bash - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: '馃摜 Download artifact: package' - uses: actions/download-artifact@v2 - - - name: Install package and Python dependencies - run: | - pacman --noconfirm -U artifact/mingw-w64-x86_64-ghdl-llvm-*.zst - pip3 install -r testsuite/requirements.txt - - - name: Run tests to generate coverage report - run: | - PYTHONPATH=$(pwd) python3 -m pytest -rA --cov=.. --cov-config=.coveragerc testsuite/pyunit - - - name: Generate XML coverage report - if: always() - run: coverage xml - - - name: '馃摛 Upload artifact: coverage report' - if: always() - uses: actions/upload-artifact@v2 - with: - name: coverage - path: coverage.xml - -# -# Coverage Publish (Ubuntu) -# - - coverage-publish: - needs: coverage - if: always() && github.repository == 'ghdl/ghdl' && github.event_name != 'pull_request' - runs-on: ubuntu-latest - name: '馃摦 Publish coverage report' - steps: - - - name: '馃О Checkout' - uses: actions/checkout@v2 - - - name: '馃摜 Download artifact: coverage report' - uses: actions/download-artifact@v2 - with: - name: coverage - - - name: CodeCov - uses: codecov/codecov-action@v1 - with: - file: coverage.xml - flags: unittests - - - name: Codacy - uses: codacy/codacy-coverage-reporter-action@master - with: - project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} - coverage-reports: coverage.xml - -#--- - -# TODO: -# - Cache -# - 'gnat' directory in macOS job -# -# - Re-package a MINGW/MSYS2 package to provide a 'standalone' tarball/zipfile. -# - https://github.com/ghdl/ghdl/issues/318#issuecomment-286246287 -# -# - Add GNAT GPL 32-bit build job with mcode backend diff --git a/README.md b/README.md index 511eedc7f..66cbabc38 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ - 'push' workflow Status

-- cgit v1.2.3