aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorClaire Xen <claire@clairexen.net>2022-02-11 16:03:12 +0100
committerGitHub <noreply@github.com>2022-02-11 16:03:12 +0100
commit49545c73f7f5a5cf73d287fd371f2ff39311f621 (patch)
treed0f20b8def36e551c6735d4fc6033aaa2633fe80 /.github
parent90b40aa51f7d666792d4f0b1830ee75b81678a1f (diff)
parente0165188669fcef2c5784c9916683889a2164e5d (diff)
downloadyosys-49545c73f7f5a5cf73d287fd371f2ff39311f621.tar.gz
yosys-49545c73f7f5a5cf73d287fd371f2ff39311f621.tar.bz2
yosys-49545c73f7f5a5cf73d287fd371f2ff39311f621.zip
Merge branch 'master' into clk2ff-better-names
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/test-linux.yml125
-rw-r--r--.github/workflows/test-macos.yml154
-rw-r--r--.github/workflows/version.yml34
-rw-r--r--.github/workflows/vs.yml37
4 files changed, 350 insertions, 0 deletions
diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml
new file mode 100644
index 000000000..9aa952e45
--- /dev/null
+++ b/.github/workflows/test-linux.yml
@@ -0,0 +1,125 @@
+name: Build and run tests (Linux)
+
+on: [push, pull_request]
+
+jobs:
+ test-linux:
+ runs-on: ${{ matrix.os.id }}
+ strategy:
+ matrix:
+ os:
+ - { id: ubuntu-20.04, name: focal }
+ compiler:
+ - 'clang-12'
+ - 'clang-11'
+ - 'gcc-11'
+ - 'gcc-10'
+ cpp_std:
+ - 'c++11'
+ - 'c++14'
+ - 'c++17'
+ - 'c++20'
+ include:
+ # Limit the older compilers to C++11 mode
+ - os: { id: ubuntu-18.04, name: bionic }
+ compiler: 'clang-3.9'
+ cpp_std: 'c++11'
+ - os: { id: ubuntu-18.04, name: bionic }
+ compiler: 'gcc-4.8'
+ cpp_std: 'c++11'
+ fail-fast: false
+ steps:
+ - name: Install Dependencies
+ shell: bash
+ run: |
+ sudo apt-get update
+ sudo apt-get install gperf build-essential bison flex libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot pkg-config python python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev
+
+ - name: Setup GCC
+ if: startsWith(matrix.compiler, 'gcc')
+ shell: bash
+ run: |
+ CXX=${CC/#gcc/g++}
+ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
+ sudo apt-get update
+ sudo apt-get install $CC $CXX
+ echo "CC=$CC" >> $GITHUB_ENV
+ echo "CXX=$CXX" >> $GITHUB_ENV
+ env:
+ CC: ${{ matrix.compiler }}
+
+ - name: Setup Clang
+ if: startsWith(matrix.compiler, 'clang')
+ shell: bash
+ run: |
+ wget https://apt.llvm.org/llvm-snapshot.gpg.key
+ sudo apt-key add llvm-snapshot.gpg.key
+ rm llvm-snapshot.gpg.key
+ sudo apt-add-repository "deb https://apt.llvm.org/${{ matrix.os.name }}/ llvm-toolchain-${{ matrix.os.name }} main"
+ sudo apt-get update
+ CXX=${CC/#clang/clang++}
+ sudo apt-get install $CC $CXX
+ echo "CC=$CC" >> $GITHUB_ENV
+ echo "CXX=$CXX" >> $GITHUB_ENV
+ env:
+ CC: ${{ matrix.compiler }}
+
+ - name: Runtime environment
+ shell: bash
+ env:
+ WORKSPACE: ${{ github.workspace }}
+ run: |
+ echo "GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV
+ echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH
+ echo "procs=$(nproc)" >> $GITHUB_ENV
+
+ - name: Tool versions
+ shell: bash
+ run: |
+ $CC --version
+ $CXX --version
+
+ - name: Checkout Yosys
+ uses: actions/checkout@v2
+
+ - name: Get iverilog
+ shell: bash
+ run: |
+ git clone https://github.com/steveicarus/iverilog.git
+
+ - name: Cache iverilog
+ id: cache-iverilog
+ uses: actions/cache@v2
+ with:
+ path: .local/
+ key: ${{ matrix.os.id }}-${{ hashFiles('iverilog/.git/refs/heads/master') }}
+
+ - name: Build iverilog
+ if: steps.cache-iverilog.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ mkdir -p $GITHUB_WORKSPACE/.local/
+ cd iverilog
+ autoconf
+ CC=gcc CXX=g++ ./configure --prefix=$GITHUB_WORKSPACE/.local
+ make -j${{ env.procs }}
+ make install
+
+ - name: Build yosys (gcc-4.8)
+ if: matrix.compiler == 'gcc-4.8'
+ shell: bash
+ run: |
+ make config-${{ matrix.compiler }}
+ make -j${{ env.procs }} CCXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
+
+ - name: Build yosys
+ if: matrix.compiler != 'gcc-4.8'
+ shell: bash
+ run: |
+ make config-${CC%%-*}
+ make -j${{ env.procs }} CCXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
+
+ - name: Run tests
+ shell: bash
+ run: |
+ make -j${{ env.procs }} test CXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml
new file mode 100644
index 000000000..09ab382bf
--- /dev/null
+++ b/.github/workflows/test-macos.yml
@@ -0,0 +1,154 @@
+name: Build and run tests (macOS)
+
+on: [push, pull_request]
+
+jobs:
+ test-macos:
+ runs-on: ${{ matrix.os.id }}
+ strategy:
+ matrix:
+ os:
+ - { id: macos-11, name: 'Big Sur' }
+ cpp_std:
+ - 'c++11'
+ - 'c++17'
+ fail-fast: false
+ steps:
+ - name: Install Dependencies
+ run: |
+ brew install bison flex gawk libffi pkg-config bash
+
+ - name: Runtime environment
+ shell: bash
+ env:
+ WORKSPACE: ${{ github.workspace }}
+ run: |
+ echo "GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV
+ echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH
+ echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
+ echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH
+ echo "procs=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
+
+ - name: Tool versions
+ shell: bash
+ run: |
+ cc --version
+
+ - name: Checkout Yosys
+ uses: actions/checkout@v2
+
+ - name: Get iverilog
+ shell: bash
+ run: |
+ git clone https://github.com/steveicarus/iverilog.git
+
+ - name: Cache iverilog
+ id: cache-iverilog
+ uses: actions/cache@v2
+ with:
+ path: .local/
+ key: ${{ matrix.os.id }}-${{ hashFiles('iverilog/.git/refs/heads/master') }}
+
+ - name: Build iverilog
+ if: steps.cache-iverilog.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ mkdir -p $GITHUB_WORKSPACE/.local/
+ cd iverilog
+ autoconf
+ CC=gcc CXX=g++ ./configure --prefix=$GITHUB_WORKSPACE/.local/
+ make -j${{ env.procs }}
+ make install
+
+ - name: Build yosys
+ shell: bash
+ run: |
+ make config-clang
+ make -j${{ env.procs }} CXXSTD=${{ matrix.cpp_std }} CC=cc CXX=cc LD=cc
+
+ - name: Run tests
+ shell: bash
+ run: |
+ make -j${{ env.procs }} test CXXSTD=${{ matrix.cpp_std }} CC=cc CXX=cc LD=cc
+
+
+ test-macos-homebrew:
+ runs-on: ${{ matrix.os.id }}
+ strategy:
+ matrix:
+ os:
+ - { id: macos-10.15, name: Catalina }
+ cpp_std:
+ - 'c++17'
+ compiler:
+ - gcc
+ fail-fast: false
+ steps:
+ - name: Install Dependencies
+ run: |
+ brew install bison flex gawk libffi pkg-config bash
+
+ - name: Runtime environment
+ shell: bash
+ env:
+ WORKSPACE: ${{ github.workspace }}
+ run: |
+ echo "GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV
+ echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH
+ echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
+ echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH
+ echo "procs=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
+
+ - name: Setup compiler
+ shell: bash
+ run: |
+ brew install ${{ matrix.compiler }}
+ CC=${COMPILER/@/-}
+ CXX=${CC/#gcc/g++}
+ echo "CC=$CC" >> $GITHUB_ENV
+ echo "CXX=$CXX" >> $GITHUB_ENV
+ env:
+ COMPILER: ${{ matrix.compiler }}
+
+ - name: Tool versions
+ shell: bash
+ run: |
+ $CC --version
+ $CXX --version
+
+ - name: Checkout Yosys
+ uses: actions/checkout@v2
+
+ - name: Get iverilog
+ shell: bash
+ run: |
+ git clone https://github.com/steveicarus/iverilog.git
+
+ - name: Cache iverilog
+ id: cache-iverilog-homebrew
+ uses: actions/cache@v2
+ with:
+ path: .local/
+ key: ${{ matrix.os.id }}-homebrew-${{ hashFiles('iverilog/.git/refs/heads/master') }}
+
+ - name: Build iverilog
+ if: steps.cache-iverilog.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ mkdir -p $GITHUB_WORKSPACE/.local
+ cd iverilog
+ autoconf
+ CC=gcc CXX=g++ ./configure --prefix=$GITHUB_WORKSPACE/.local
+ make -j${{ env.procs }}
+ make install
+
+ - name: Build yosys
+ shell: bash
+ run: |
+ make config-gcc
+ make -j${{ env.procs }} CXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
+
+ - name: Run tests
+ shell: bash
+ run: |
+ make -j${{ env.procs }} test CXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml
new file mode 100644
index 000000000..c6f4da30d
--- /dev/null
+++ b/.github/workflows/version.yml
@@ -0,0 +1,34 @@
+name: Bump version
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 0 * * *'
+
+jobs:
+ bump-version:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Take last commit
+ id: log
+ run: echo "::set-output name=message::$(git log --no-merges -1 --oneline)"
+ - name: Take repository
+ id: repo
+ run: echo "::set-output name=message::$GITHUB_REPOSITORY"
+ - name: Bump version
+ if: "!contains(steps.log.outputs.message, 'Bump version') && contains(steps.repo.outputs.message, 'YosysHQ/yosys')"
+ run: |
+ make bumpversion
+ git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git config --local user.name "github-actions[bot]"
+ git add Makefile
+ git commit -m "Bump version"
+ - name: Push changes # push the output folder to your repo
+ if: "!contains(steps.log.outputs.message, 'Bump version') && contains(steps.repo.outputs.message, 'YosysHQ/yosys')"
+ uses: ad-m/github-push-action@master
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/vs.yml b/.github/workflows/vs.yml
new file mode 100644
index 000000000..79a8401d6
--- /dev/null
+++ b/.github/workflows/vs.yml
@@ -0,0 +1,37 @@
+name: Visual Studio Build
+
+on: [push, pull_request]
+
+jobs:
+ yosys-vcxsrc:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Cache sources
+ id: cache-sources
+ uses: actions/cache@v2
+ with:
+ path: .
+ key: cache-yosys
+ - name: Build
+ run: make vcxsrc YOSYS_VER=latest
+ - uses: actions/upload-artifact@v2
+ with:
+ name: vcxsrc
+ path: yosys-win32-vcxsrc-latest.zip
+
+ build:
+ runs-on: windows-2019
+ needs: yosys-vcxsrc
+ steps:
+ - uses: actions/download-artifact@v2
+ with:
+ name: vcxsrc
+ path: .
+ - name: unzip
+ run: unzip yosys-win32-vcxsrc-latest.zip
+ - name: setup-msbuild
+ uses: microsoft/setup-msbuild@v1
+ - name: MSBuild
+ working-directory: yosys-win32-vcxsrc-latest
+ run: msbuild YosysVS.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:WindowsTargetPlatformVersion=10.0.17763.0