Skip to content

Commit

Permalink
powerpc/ci: Add CI configuration
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Ellerman <[email protected]>
  • Loading branch information
mpe committed Oct 8, 2024
1 parent 0202c63 commit cc77296
Show file tree
Hide file tree
Showing 16 changed files with 873 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .github/problem-matchers/compiler-non-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"problemMatcher": [
{
"__comment_owner": "match compiler warning/error lines not from source",
"owner": "compiler-non-source",
"pattern": [
{
"__comment_regexp1": "clang: warning: argument unused during compilation: '-march=armv7-a' [-Wunused-command-line-argument]",
"__comment_regexp2": "ld.lld: warning: lld uses blx instruction, no object with architecture supporting feature detected",
"regexp": "^(?:[^:]+): (?:fatal\\s+)?(warning|error):\\s+(.*)$",
"severity": 1,
"message": 2
}
]
}
]
}
17 changes: 17 additions & 0 deletions .github/problem-matchers/compiler-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"problemMatcher": [
{
"owner": "gcc-problem-matcher",
"pattern": [
{
"regexp": "^(?:/linux/)?(.*):(\\d+):(\\d+):\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
]
}
]
}
17 changes: 17 additions & 0 deletions .github/problem-matchers/sparse.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"problemMatcher": [
{
"owner": "powerpc-sparse",
"pattern": [
{
"regexp": "^\\+(?:/linux/)?(.*):(\\d+|XX):(\\d+|XX):\\s+(error|warning):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
]
}
]
}
79 changes: 79 additions & 0 deletions .github/workflows/powerpc-allconfig.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: powerpc/allconfig

# 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 merge-test only
branches:
- 'merge-test'

jobs:
kernel:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
include:
# ppc64le allmod and allyes
- subarch: ppc64le
defconfig: ppc64le_allmodconfig
image: fedora-40
- subarch: ppc64le
defconfig: allyesconfig
image: fedora-40
merge_config: /linux/arch/powerpc/configs/le.config
# ppc64 allmod and allyes
- subarch: ppc64
defconfig: allmodconfig
image: fedora-40
- subarch: ppc64
defconfig: allyesconfig
image: fedora-40
# ppc32 allmod
- subarch: ppc
defconfig: ppc32_allmodconfig
image: fedora-40
# ppc64 book3e allmod
# Broken due to head_check.sh
#- subarch: ppc64
# defconfig: ppc64_book3e_allmodconfig
# image: fedora-40

env:
ARCH: powerpc
TARGET: kernel
CCACHE: 1
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
MERGE_CONFIG: /linux/arch/powerpc/configs/disable-werror.config,${{ matrix.merge_config }}

steps:
- uses: actions/checkout@v4

- name: Register problem matchers
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
84 changes: 84 additions & 0 deletions .github/workflows/powerpc-clang.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: powerpc/clang

# 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
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:
kernel:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
defconfig: [ppc64, corenet64_smp, pmac32, mpc885_ads]
image: [fedora-40]
subarch: [ppc64]
include:
- subarch: ppc64le
defconfig: ppc64le
image: fedora-40

env:
CLANG: 1
LLVM_IAS: 0
ARCH: powerpc
TARGET: kernel
CCACHE: 1
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
MERGE_CONFIG: /linux/arch/powerpc/configs/disable-werror.config

steps:
- uses: actions/checkout@v4

- name: Register problem matchers
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: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.defconfig }}-${{ matrix.image }}
path: |
~/output/vmlinux
~/output/.config
~/output/System.map
~/output/modules.tar.bz2
~/output/arch/powerpc/boot/zImage
~/output/arch/powerpc/boot/uImage
71 changes: 71 additions & 0 deletions .github/workflows/powerpc-extrawarn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: powerpc/extrawarn

# Controls when the action will run.
on:
# Only when triggered manually via the github UI.
workflow_dispatch:

jobs:
kernel:
runs-on: ubuntu-latest

strategy:
matrix:
defconfig: [ppc64, corenet64_smp, pmac32, ppc44x, mpc885_ads, corenet32_smp]
image: [fedora-40, korg-5.5.0]
subarch: [ppc64]
include:
- subarch: ppc64le
defconfig: ppc64le
image: korg-5.5.0
- subarch: ppc64le
defconfig: ppc64le
image: fedora-40

env:
ARCH: powerpc
TARGET: kernel
CCACHE: 1
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
MERGE_CONFIG: /linux/arch/powerpc/configs/disable-werror.config
KBUILD_EXTRA_WARN: 1

steps:
- uses: actions/checkout@v4

- name: Register problem matchers
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: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.defconfig }}-${{ matrix.image }}
path: |
~/output/vmlinux
~/output/.config
~/output/System.map
~/output/modules.tar.bz2
~/output/arch/powerpc/boot/zImage
~/output/arch/powerpc/boot/uImage
Loading

0 comments on commit cc77296

Please sign in to comment.