name: Test suite on: pull_request: push: schedule: - cron: '0 16 * * 5' jobs: gcc: runs-on: ubuntu-latest strategy: matrix: version: [9, 10, 11, 12, 13] use_native_chk: [true, false] steps: - name: Checking out the code uses: actions/checkout@v3 - name: Cache musl toolchain uses: actions/cache@v3 id: cache-musl with: path: x86_64-linux-musl-native key: musl - name: Downloading musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: wget --quiet https://musl.cc/x86_64-linux-musl-native.tgz - name: Extracting musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: tar xzf ./x86_64-linux-musl-native.tgz - name: Setting up gcc version run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install -y --no-install-recommends gcc-${{ matrix.version }} g++-${{ matrix.version }} sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.version }} 100 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.version }} 100 - name: Build with native chk if: ${{ matrix.use_native_chk == true }} run: make CFLAGS=-DUSE_NATIVE_CHK -C tests gcc - name: Build without native chk, and run the testsuite if: ${{ matrix.use_native_chk == false }} shell: bash run: | make -C tests clean gcc run > ./results.txt grep -zvq 'FAIL' ./results.txt clang: runs-on: ubuntu-latest strategy: matrix: version: [13, 14, 15] use_native_chk: [true, false] steps: - name: Checking out the code uses: actions/checkout@v3 - name: Cache musl toolchain uses: actions/cache@v3 id: cache-musl with: path: x86_64-linux-musl-native key: musl - name: Downloading musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: wget --quiet https://musl.cc/x86_64-linux-musl-native.tgz - name: Extracting musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: tar xzf ./x86_64-linux-musl-native.tgz - name: Setting up clang version run: | sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ matrix.version }} 100 sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ matrix.version }} 100 - name: Build with native chk if: ${{ matrix.use_native_chk == true }} run: make CFLAGS=-DUSE_NATIVE_CHK -C tests clang - name: Building and running without native chk if: ${{ matrix.use_native_chk == false }} shell: bash run: | make -C tests clean clang run > ./results.txt grep -zvq 'FAIL' ./results.txt c_versions: runs-on: ubuntu-latest strategy: matrix: version: ["c89", "c99", "c11", "c17"] steps: - name: Checking out the code uses: actions/checkout@v3 - name: Cache musl toolchain uses: actions/cache@v3 id: cache-musl with: path: x86_64-linux-musl-native key: musl - name: Downloading musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: wget --quiet https://musl.cc/x86_64-linux-musl-native.tgz - name: Extracting musl-based toolchain if: steps.cache-musl.outputs.cache-hit != 'true' run: tar xzf ./x86_64-linux-musl-native.tgz - name: Building with clang shell: bash run: make CFLAGS=-std=${{ matrix.version }} -C tests clean clang - name: Building with gcc shell: bash run: make CFLAGS=-std=${{ matrix.version }} -C tests clean gcc