From 154308dfd79e866b6f01403bce81edbdff953ad7 Mon Sep 17 00:00:00 2001 From: javalsai Date: Wed, 21 Aug 2024 16:49:33 +0200 Subject: [PATCH] feat(ci): make build check a check status --- .github/actions/build/action.yml | 10 ++++-- .github/workflows/build-check.yml | 53 +++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 2f9526b..08bf283 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -23,6 +23,7 @@ runs: steps: - uses: actions/checkout@v4 + # cache-apt-pkgs-action try to cache :i386 packages challenge impossible - if: ${{ inputs.arch_name == 'x86' }} shell: bash @@ -33,18 +34,21 @@ runs: - uses: awalsh128/cache-apt-pkgs-action@latest with: - packages: "libpam0g-dev gcc-multilib libx32stdc++6 libaio1" + packages: "libpam0g-dev gcc-multilib" version: 1.0 - name: Build Code shell: bash run: | - make CC=${{ inputs.cc }} CFLAGS="-O3 ${{ inputs.cflags }}" + make CC=${{ inputs.cc }} CFLAGS="-O3 ${{ inputs.cflags }}" \ + 2> stderr-${{ inputs.arch_name }} mv lidm lidm-${{ inputs.arch_name }} - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: build-${{ inputs.arch_name }} - path: lidm-${{ inputs.arch_name }} + path: | + lidm-${{ inputs.arch_name }} + stderr-${{ inputs.arch_name }} retention-days: 1 diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index be8ae42..1ba7860 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -1,15 +1,10 @@ name: Test Build -on: - push: - branches: - - '*' - pull_request: - branches: - - main +on: push jobs: check_build: + permissions: write-all strategy: matrix: include: @@ -23,10 +18,48 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Testing Build Process on ${{ matrix.arch_name }} + - 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: - # TODO: make arch_name optional (dont upload artifact) arch_name: ${{ matrix.arch_name }} cc: ${{ matrix.cc }} - cflags: ${{ matrix.cflags }} + 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 }}