testsuite.yaml (4215B)
1 name: Test suite 2 on: 3 pull_request: 4 push: 5 schedule: 6 - cron: '0 16 * * 5' 7 8 jobs: 9 gcc: 10 runs-on: ubuntu-latest 11 steps: 12 - name: Checking out the code 13 uses: actions/checkout@v3 14 - name: Cache musl toolchain 15 uses: actions/cache@v3 16 id: cache-musl 17 with: 18 path: x86_64-linux-musl-native 19 key: musl 20 - name: Downloading musl-based toolchain 21 if: steps.cache-musl.outputs.cache-hit != 'true' 22 run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz 23 - name: Extracting musl-based toolchain 24 if: steps.cache-musl.outputs.cache-hit != 'true' 25 run: tar xzf ./x86_64-linux-musl-native.tgz 26 - name: Build and run the testsuite 27 shell: bash 28 run : make --silent -C tests clean gcc run | tee ./results.txt 29 - name: Check the testsuite's output 30 shell: bash 31 run: grep -zvq 'FAIL' ./results.txt 32 - name: Show logs in case of failure 33 if: ${{ failure() }} 34 run: cat ./results.txt 35 36 clang: 37 runs-on: ubuntu-latest 38 strategy: 39 matrix: 40 version: [16, 17, 18] 41 steps: 42 - name: Checking out the code 43 uses: actions/checkout@v3 44 - name: Cache musl toolchain 45 uses: actions/cache@v3 46 id: cache-musl 47 with: 48 path: x86_64-linux-musl-native 49 key: musl 50 - name: Downloading musl-based toolchain 51 if: steps.cache-musl.outputs.cache-hit != 'true' 52 run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz 53 - name: Extracting musl-based toolchain 54 if: steps.cache-musl.outputs.cache-hit != 'true' 55 run: tar xzf ./x86_64-linux-musl-native.tgz 56 - name: Setting up clang version 57 run: | 58 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ matrix.version }} 100 59 sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ matrix.version }} 100 60 - name: Build and run the testsuite 61 shell: bash 62 run : make --silent -C tests clean clang run | tee ./results.txt 63 - name: Check the testsuite's output 64 shell: bash 65 run: grep -zvq 'FAIL' ./results.txt 66 - name: Show logs in case of failure 67 if: ${{ failure() }} 68 run: cat ./results.txt 69 70 c_versions: 71 runs-on: ubuntu-latest 72 strategy: 73 matrix: 74 version: ["c89", "c99", "c11", "c17"] 75 steps: 76 - name: Checking out the code 77 uses: actions/checkout@v3 78 - name: Cache musl toolchain 79 uses: actions/cache@v3 80 id: cache-musl 81 with: 82 path: x86_64-linux-musl-native 83 key: musl 84 - name: Downloading musl-based toolchain 85 if: steps.cache-musl.outputs.cache-hit != 'true' 86 run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz 87 - name: Extracting musl-based toolchain 88 if: steps.cache-musl.outputs.cache-hit != 'true' 89 run: tar xzf ./x86_64-linux-musl-native.tgz 90 - name: Building with clang 91 shell: bash 92 run: CFLAGS=-std=${{ matrix.version }} make -C tests clean clang run 93 - name: Building with gcc 94 shell: bash 95 run: CFLAGS=-std=${{ matrix.version }} make -C tests clean gcc run 96 97 fortify_level: 98 runs-on: ubuntu-latest 99 strategy: 100 matrix: 101 level: [2, 3] 102 steps: 103 - name: Checking out the code 104 uses: actions/checkout@v3 105 - name: Cache musl toolchain 106 uses: actions/cache@v3 107 id: cache-musl 108 with: 109 path: x86_64-linux-musl-native 110 key: musl 111 - name: Downloading musl-based toolchain 112 if: steps.cache-musl.outputs.cache-hit != 'true' 113 run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz 114 - name: Extracting musl-based toolchain 115 if: steps.cache-musl.outputs.cache-hit != 'true' 116 run: tar xzf ./x86_64-linux-musl-native.tgz 117 - name: Building with clang 118 shell: bash 119 run: _FORTIFY_SOURCE=${{ matrix.level }} make -C tests clean clang 120 - name: Building with gcc 121 shell: bash 122 run: _FORTIFY_SOURCE=${{ matrix.level }} make -C tests clean gcc