aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/push.yml
diff options
context:
space:
mode:
authorumarcor <unai.martinezcorral@ehu.eus>2021-02-01 09:09:43 +0100
committerumarcor <unai.martinezcorral@ehu.eus>2021-02-01 09:09:43 +0100
commit835eb73d7c567c3178f6f693153bea3243ecef53 (patch)
tree73a90bcd718a0a50e368b077d78ca8f9baa3768a /.github/workflows/push.yml
parentbcaadc4e36307110e203661b1300822be8e90373 (diff)
downloadghdl-835eb73d7c567c3178f6f693153bea3243ecef53.tar.gz
ghdl-835eb73d7c567c3178f6f693153bea3243ecef53.tar.bz2
ghdl-835eb73d7c567c3178f6f693153bea3243ecef53.zip
ci: rename workflow 'push' to 'Test'
Diffstat (limited to '.github/workflows/push.yml')
-rw-r--r--.github/workflows/push.yml427
1 files changed, 0 insertions, 427 deletions
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