Skip to content

From patchwork series 431729 #1173

From patchwork series 431729

From patchwork series 431729 #1173

name: powerpc/sparse
# Controls when the action will run.
on:
# This allows the build to be triggered manually via the github UI.
workflow_dispatch:
push:
# This triggers the build on a push to any branch named ci/powerpc/<something>
branches:
- '**'
# As long as one of these paths matches
paths:
- '!tools/**' # ignore tools
- '!samples/**' # ignore samples
- '!Documentation/**' # ignore Documentation
- '!arch/**' # ignore arch changes
- 'arch/powerpc/**' # but not arch/powerpc
- 'arch/Kconfig' # or common bits in arch
- '**' # anything else triggers a build
jobs:
sparse:
runs-on: ubuntu-latest
strategy:
matrix:
defconfig: [ppc64, pmac32, mpc885_ads_defconfig]
image: [fedora-40]
subarch: [ppc64]
include:
- subarch: ppc64le
defconfig: ppc64le
image: fedora-40
env:
ARCH: powerpc
TARGET: kernel
CCACHE: 1
SPARSE: 2
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
steps:
- name: Checkout
uses: actions/checkout@v4
# NB this is before the build on merge, so all errors are detected
# On other branches we ignore these and only report sparse diff results below
- name: Register problem matchers
if: github.ref_name == 'merge'
run: |
echo "::add-matcher::.github/problem-matchers/compiler-source.json"
echo "::add-matcher::.github/problem-matchers/compiler-non-source.json"
- name: Load ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ${{ matrix.image }}-${{ matrix.subarch }}-${{ matrix.defconfig }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: |
mkdir -p ~/.ccache
./arch/powerpc/tools/ci-build.sh
- name: Get sparse results from base tree
if: github.ref_name != 'merge'
continue-on-error: true
uses: dawidd6/action-download-artifact@v2
with:
workflow: powerpc-sparse.yml
workflow_conclusion: success
branch: merge # Requires the merge branch to be built once before this will work
name: sparse-${{ matrix.defconfig }}-${{ matrix.image }}.log
# NB this is after the build on non-merge, so only errors from the sparse diff are detected
- name: Register problem matcher
if: github.ref_name != 'merge'
run: |
echo "::add-matcher::.github/problem-matchers/sparse.json"
- name: Compare sparse results with base
if: github.ref_name != 'merge'
run: |
bash -c 'if [ ! -f sparse.log ]; then cp ~/output/sparse.log .; fi'
./arch/powerpc/tools/smart-sparse-diff.py sparse.log ~/output/sparse.log | tee -a ~/output/sparse-diff.log
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: sparse-${{ matrix.defconfig }}-${{ matrix.image }}.log
path: |
~/output/sparse.log
~/output/sparse-diff.log