name: Test Build on: push jobs: check_build: permissions: write-all strategy: matrix: include: - arch_name: x86_64 cc: gcc cflags: - arch_name: x86 cc: gcc cflags: -m32 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: myrotvorets/set-commit-status-action@master with: token: ${{ secrets.GITHUB_TOKEN }} status: pending context: Build (${{ matrix.arch_name }}) - name: Attempt Build (${{ matrix.arch_name }}) uses: ./.github/actions/build with: arch_name: ${{ matrix.arch_name }} cc: ${{ matrix.cc }} cflags: "-Wall ${{ matrix.cflags }}" - name: Download Build Results uses: actions/download-artifact@v4 with: name: build-${{ matrix.arch_name }} path: build-results - name: Process Results id: get-stats if: always() run: | if ! [ -d "build-results" ]; then # Build failed echo "DESCR=" >> "$GITHUB_OUTPUT" else # Build Succeeded cd "build-results" ls -lah cat stderr-* >&2 WARNS="$(cat stderr-* | grep '^[^ ]*\.[ch]:' | wc -l)" HSIZE="$(stat --printf="%s" lidm-* | numfmt --to=iec-i)B" echo "DESCR='$HSIZE, $WARNS warnings'" >> "$GITHUB_OUTPUT" fi - name: Set final commit status uses: myrotvorets/set-commit-status-action@master if: always() with: token: ${{ secrets.GITHUB_TOKEN }} status: ${{ job.status }} context: Build (${{ matrix.arch_name }}) description: ${{ steps.get-stats.outputs.DESCR }}