ci: migrate from Travis CI to GH actions Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
diff --git a/.github/workflows/build-and-test.sh b/.github/workflows/build-and-test.sh new file mode 100755 index 0000000..8fd95f9 --- /dev/null +++ b/.github/workflows/build-and-test.sh
@@ -0,0 +1,25 @@ +#! /bin/bash + +set -e + +source .github/workflows/common.sh + +########################################################################## + +start_section Building +make plugins -j`nproc` +end_section + +########################################################################## + +start_section Installing +make install -j`nproc` +end_section + +########################################################################## + +start_section Testing +make test -j`nproc` +end_section + +##########################################################################
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..42f5810 --- /dev/null +++ b/.github/workflows/ci.yml
@@ -0,0 +1,31 @@ +name: CI tests + +on: [push, pull_request] + +jobs: + + Run-tests: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + + - name: Install + run: | + sudo apt-get update + sudo apt-get install git g++-9 build-essential bison flex \ + libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot \ + pkg-config libboost-system-dev libboost-python-dev \ + libboost-filesystem-dev zlib1g-dev + + - name: Install Yosys + run: source .github/workflows/setup.sh + env: + OS: ${{ runner.os }} + + - name: Build and test plugins + run: source .github/workflows/build-and-test.sh + env: + OS: ${{ runner.os }}
diff --git a/.github/workflows/common.sh b/.github/workflows/common.sh new file mode 100644 index 0000000..53e7033 --- /dev/null +++ b/.github/workflows/common.sh
@@ -0,0 +1,39 @@ +#! /bin/bash + +# Look for location binaries first +export PATH="$HOME/.local-bin/bin:$PATH" + +# OS X specific common setup +if [[ "${OS}" == "macOS" ]]; then + export PATH="/usr/local/opt/ccache/libexec:$PATH" +fi + +# Parallel builds! +MAKEFLAGS="-j 2" + +function action_fold() { + if [ "$1" = "start" ]; then + echo "::group::$2" + SECONDS=0 + else + duration=$SECONDS + echo "::endgroup::" + printf "${GRAY}took $(($duration / 60)) min $(($duration % 60)) sec.${NC}\n" + fi + return 0; +} + +function start_section() { + action_fold start "$1" + echo -e "${PURPLE}SymbiFlow Yosys Plugins${NC}: - $2${NC}" + echo -e "${GRAY}-------------------------------------------------------------------${NC}" +} + +export -f start_section + +function end_section() { + echo -e "${GRAY}-------------------------------------------------------------------${NC}" + action_fold end "$1" +} + +export -f end_section
diff --git a/.github/workflows/setup.sh b/.github/workflows/setup.sh new file mode 100755 index 0000000..e734b2a --- /dev/null +++ b/.github/workflows/setup.sh
@@ -0,0 +1,45 @@ +#! /bin/bash + +set -e + +source .github/workflows/common.sh + +########################################################################## + +# Output status information. +start_section Status +( + set +e + set -x + git status + git branch -v + git log -n 5 --graph + git log --format=oneline -n 20 --graph +) +end_section + +########################################################################## + +#Install yosys +start_section Install-Yosys +( + if [ ! -e ~/.local-bin/bin/yosys ]; then + echo '==========================' + echo 'Building yosys' + echo '==========================' + mkdir -p ~/.local-src + mkdir -p ~/.local-bin + cd ~/.local-src + git clone https://github.com/SymbiFlow/yosys.git -b master+wip + cd yosys + PREFIX=$HOME/.local-bin make -j$(nproc) + PREFIX=$HOME/.local-bin make install + echo $(which yosys) + echo $(which yosys-config) + echo $(yosys-config --datdir) + fi +) +end_section + +########################################################################## +
diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 58b379e..0000000 --- a/.travis.yml +++ /dev/null
@@ -1,49 +0,0 @@ -sudo: false -language: cpp - -#cache: -# ccache: false -# directories: -# - ~/.local-bin - - -env: - global: - - MAKEFLAGS="-j 2" - -include: - # Latest gcc supported on Travis Linux - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-9 - - 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 - env: - - MATRIX_EVAL="CONFIG=gcc && CC=gcc-9 && CXX=g++-9" - -before_install: - - ./.travis/setup.sh - -script: - - ./.travis/build-and-test.sh -
diff --git a/.travis/build-and-test.sh b/.travis/build-and-test.sh deleted file mode 100755 index e1cd5df..0000000 --- a/.travis/build-and-test.sh +++ /dev/null
@@ -1,61 +0,0 @@ -#! /bin/bash - -set -e - -source .travis/common.sh - -########################################################################## - -echo -echo 'Configuring...' && echo -en 'travis_fold:start:script.configure\\r' -echo - -if [ "$CONFIG" = "gcc" ]; then - echo "Configuring for gcc." - make config-gcc -elif [ "$CONFIG" = "clang" ]; then - echo "Configuring for clang." - make config-clang -fi - -echo -echo -en 'travis_fold:end:script.configure\\r' -echo - -########################################################################## - -echo -echo 'Building plugins..' && echo -en 'travis_fold:start:script.build\\r' -echo - -make plugins -j`nproc` - -echo -echo -en 'travis_fold:end:script.build\\r' -echo - -########################################################################## - -echo -echo 'Installing plugins...' && echo -en 'travis_fold:start:script.build\\r' -echo - -make install -j`nproc` - -echo -echo -en 'travis_fold:end:script.build\\r' -echo - -########################################################################## - -echo -echo 'Testing...' && echo -en 'travis_fold:start:script.test\\r' -echo - -make test -j`nproc` - -echo -echo -en 'travis_fold:end:script.test\\r' -echo - -##########################################################################
diff --git a/.travis/common.sh b/.travis/common.sh deleted file mode 100644 index 8eecc4c..0000000 --- a/.travis/common.sh +++ /dev/null
@@ -1,15 +0,0 @@ -#! /bin/bash - -# Setup the CC / CXX from the matrix config -eval "${MATRIX_EVAL}" - -# Look for location binaries first -export PATH="$HOME/.local-bin/bin:$PATH" - -# OS X specific common setup -if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - export PATH="/usr/local/opt/ccache/libexec:$PATH" -fi - -# Parallel builds! -MAKEFLAGS="-j 2"
diff --git a/.travis/setup.sh b/.travis/setup.sh deleted file mode 100755 index 3416017..0000000 --- a/.travis/setup.sh +++ /dev/null
@@ -1,47 +0,0 @@ -#! /bin/bash - -set -e - -source .travis/common.sh - -########################################################################## - -# Output status information. -( - set +e - set -x - git status - git branch -v - git log -n 5 --graph - git log --format=oneline -n 20 --graph -) -echo -echo -en 'travis_fold:end:before_install.git\\r' -echo - -########################################################################## - -#Install yosys -( - if [ ! -e ~/.local-bin/bin/yosys ]; then - echo - echo 'Building yosys...' && echo -en 'travis_fold:start:before_install.yosys\\r' - echo - mkdir -p ~/.local-src - mkdir -p ~/.local-bin - cd ~/.local-src - git clone https://github.com/SymbiFlow/yosys.git -b master+wip - cd yosys - PREFIX=$HOME/.local-bin make -j$(nproc) - PREFIX=$HOME/.local-bin make install - echo $(which yosys) - echo $(which yosys-config) - echo $(yosys-config --datdir) - echo - echo -en 'travis_fold:end:before_install.yosys\\r' - echo - fi -) - -########################################################################## -