128 lines
3.6 KiB
YAML
128 lines
3.6 KiB
YAML
name: Build test
|
|
|
|
on:
|
|
# Trigger the workflow on push or pull requests.
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# x86-64 gcc
|
|
- arch: x86_64
|
|
cc_pkg: gcc-x86-64-linux-gnu
|
|
cxx_pkg: g++-x86-64-linux-gnu
|
|
cc: x86_64-linux-gnu-gcc
|
|
cxx: x86_64-linux-gnu-g++
|
|
|
|
# x86-64 clang
|
|
- arch: x86_64
|
|
cc_pkg: clang
|
|
cxx_pkg: clang
|
|
cc: clang
|
|
cxx: clang++
|
|
|
|
# x86 (32-bit) gcc
|
|
- arch: i686
|
|
cc_pkg: gcc-i686-linux-gnu
|
|
cxx_pkg: g++-i686-linux-gnu
|
|
cc: i686-linux-gnu-gcc
|
|
cxx: i686-linux-gnu-g++
|
|
|
|
# aarch64 gcc
|
|
- arch: aarch64
|
|
cc_pkg: gcc-aarch64-linux-gnu
|
|
cxx_pkg: g++-aarch64-linux-gnu
|
|
cc: aarch64-linux-gnu-gcc
|
|
cxx: aarch64-linux-gnu-g++
|
|
|
|
# arm (32-bit) gcc
|
|
- arch: arm
|
|
cc_pkg: gcc-arm-linux-gnueabi
|
|
cxx_pkg: g++-arm-linux-gnueabi
|
|
cc: arm-linux-gnueabi-gcc
|
|
cxx: arm-linux-gnueabi-g++
|
|
|
|
# powerpc64
|
|
- arch: powerpc64
|
|
cc_pkg: gcc-powerpc64-linux-gnu
|
|
cxx_pkg: g++-powerpc64-linux-gnu
|
|
cc: powerpc64-linux-gnu-gcc
|
|
cxx: powerpc64-linux-gnu-g++
|
|
|
|
# powerpc
|
|
- arch: powerpc
|
|
cc_pkg: gcc-powerpc-linux-gnu
|
|
cxx_pkg: g++-powerpc-linux-gnu
|
|
cc: powerpc-linux-gnu-gcc
|
|
cxx: powerpc-linux-gnu-g++
|
|
|
|
# alpha
|
|
- arch: alpha
|
|
cc_pkg: gcc-alpha-linux-gnu
|
|
cxx_pkg: g++-alpha-linux-gnu
|
|
cc: alpha-linux-gnu-gcc
|
|
cxx: alpha-linux-gnu-g++
|
|
|
|
# mips64
|
|
- arch: mips64
|
|
cc_pkg: gcc-mips64-linux-gnuabi64
|
|
cxx_pkg: g++-mips64-linux-gnuabi64
|
|
cc: mips64-linux-gnuabi64-gcc
|
|
cxx: mips64-linux-gnuabi64-g++
|
|
|
|
# mips
|
|
- arch: mips
|
|
cc_pkg: gcc-mips-linux-gnu
|
|
cxx_pkg: g++-mips-linux-gnu
|
|
cc: mips-linux-gnu-gcc
|
|
cxx: mips-linux-gnu-g++
|
|
|
|
env:
|
|
FLAGS: -g -O2 -Wall -Wextra -Werror
|
|
|
|
steps:
|
|
- name: Checkout source
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Compilers
|
|
run: |
|
|
if [[ "${{matrix.cc_pkg}}" == "clang" ]]; then \
|
|
wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh; \
|
|
sudo bash /tmp/llvm.sh 15; \
|
|
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-15 400; \
|
|
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-15 400; \
|
|
else \
|
|
sudo apt-get update -y; \
|
|
sudo apt-get install -y ${{matrix.cc_pkg}} ${{matrix.cxx_pkg}}; \
|
|
fi;
|
|
|
|
- name: Display compiler versions
|
|
run: |
|
|
${{matrix.cc}} --version;
|
|
${{matrix.cxx}} --version;
|
|
|
|
- name: Build
|
|
run: |
|
|
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}};
|
|
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS";
|
|
|
|
- name: Build nolibc
|
|
run: |
|
|
if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "i686" ]]; then \
|
|
make clean; \
|
|
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}} --nolibc; \
|
|
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
|
|
else \
|
|
echo "Skipping nolibc build, this arch doesn't support building liburing without libc"; \
|
|
fi;
|
|
|
|
- name: Test install command
|
|
run: |
|
|
sudo make install;
|