From d6f9619585f1726b650e3b3825021d08a3b8ce3f Mon Sep 17 00:00:00 2001 From: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com> Date: Thu, 15 Feb 2024 10:00:58 +1300 Subject: [PATCH] ci: split test-compile from test-build --- .github/workflows/test-build.yml | 112 -------------------------- .github/workflows/test-compile.yml | 121 +++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 112 deletions(-) create mode 100644 .github/workflows/test-compile.yml diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index fce58f155b9..a0b18185ad4 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -9,118 +9,6 @@ on: - master jobs: - test-compile: - name: Compiler testing - runs-on: ${{ matrix.os }} - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.compiler }} - CXXSTD: ${{ matrix.cpp_std }} - strategy: - matrix: - os: - - ubuntu-20.04 - compiler: - - 'clang-12' - - 'gcc-11' - cpp_std: - - 'c++11' - - 'c++14' - - 'c++17' - - 'c++20' - include: - # Add os_name - - os: ubuntu-20.04 - os_name: focal - # macOS builds - - os: macos-13 - compiler: 'clang' - cpp_std: 'c++11' - - os: macos-13 - compiler: 'clang' - cpp_std: 'c++17' - # Limited testing for older compilers - - os: ubuntu-20.04 - os_name: focal - compiler: 'clang-11' - cpp_std: 'c++11' - - os: ubuntu-20.04 - os_name: focal - compiler: 'gcc-10' - cpp_std: 'c++11' - fail-fast: false - steps: - - name: Install Linux Dependencies - if: runner.os == 'Linux' - 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: Install macOS Dependencies - if: runner.os == 'macOS' - run: | - brew install bison flex gawk libffi pkg-config bash - - - 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 "CXX=$CXX" >> $GITHUB_ENV - echo "CXXFLAGS=-Wp,-D_GLIBCXX_ASSERTIONS" >> $GITHUB_ENV - - - name: Setup Clang - if: startsWith(matrix.compiler, 'clang') && (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 "CXX=$CXX" >> $GITHUB_ENV - - - name: Linux runtime environment - if: runner.os == 'Linux' - shell: bash - run: | - echo "${{ github.workspace }}/.local/bin" >> $GITHUB_PATH - echo "procs=$(nproc)" >> $GITHUB_ENV - - - name: macOS runtime environment - if: runner.os == 'macOS' - shell: bash - run: | - 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 - $CXX --version - - - name: Checkout Yosys - uses: actions/checkout@v4 - - - name: Build - shell: bash - run: | - make config-${CC%%-*} - make -j$procs CXXSTD=$CXXSTD CC=$CC CXX=$CXX LD=$CC - - - name: Log yosys-config output - run: | - ./yosys-config || true - build-yosys: name: Reusable build runs-on: ${{ matrix.os }} diff --git a/.github/workflows/test-compile.yml b/.github/workflows/test-compile.yml new file mode 100644 index 00000000000..ff578f953a1 --- /dev/null +++ b/.github/workflows/test-compile.yml @@ -0,0 +1,121 @@ +name: Compiler testing + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + test-compile: + runs-on: ${{ matrix.os }} + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.compiler }} + CXXSTD: ${{ matrix.cpp_std }} + strategy: + matrix: + os: + - ubuntu-20.04 + compiler: + - 'clang-12' + - 'gcc-11' + cpp_std: + - 'c++11' + - 'c++14' + - 'c++17' + - 'c++20' + include: + # Add os_name + - os: ubuntu-20.04 + os_name: focal + # macOS builds + - os: macos-13 + compiler: 'clang' + cpp_std: 'c++11' + - os: macos-13 + compiler: 'clang' + cpp_std: 'c++17' + # Limited testing for older compilers + - os: ubuntu-20.04 + os_name: focal + compiler: 'clang-11' + cpp_std: 'c++11' + - os: ubuntu-20.04 + os_name: focal + compiler: 'gcc-10' + cpp_std: 'c++11' + fail-fast: false + steps: + - name: Install Linux Dependencies + if: runner.os == 'Linux' + 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: Install macOS Dependencies + if: runner.os == 'macOS' + run: | + brew install bison flex gawk libffi pkg-config bash + + - 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 "CXX=$CXX" >> $GITHUB_ENV + echo "CXXFLAGS=-Wp,-D_GLIBCXX_ASSERTIONS" >> $GITHUB_ENV + + - name: Setup Clang + if: startsWith(matrix.compiler, 'clang') && (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 "CXX=$CXX" >> $GITHUB_ENV + + - name: Linux runtime environment + if: runner.os == 'Linux' + shell: bash + run: | + echo "${{ github.workspace }}/.local/bin" >> $GITHUB_PATH + echo "procs=$(nproc)" >> $GITHUB_ENV + + - name: macOS runtime environment + if: runner.os == 'macOS' + shell: bash + run: | + 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 + $CXX --version + + - name: Checkout Yosys + uses: actions/checkout@v4 + + - name: Build + shell: bash + run: | + make config-${CC%%-*} + make -j$procs CXXSTD=$CXXSTD CC=$CC CXX=$CXX LD=$CC + + - name: Log yosys-config output + run: | + ./yosys-config || true