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 Nov 17, 2023
1 parent 6bdbb13 commit d98baf3
Show file tree
Hide file tree
Showing 15 changed files with 676 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
}
]
}
]
}
76 changes: 76 additions & 0 deletions .github/workflows/powerpc-allconfig.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
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

continue-on-error: true

strategy:
fail-fast: false
matrix:
include:
# ppc64le allmod and allyes
- subarch: ppc64le
defconfig: ppc64le_allmodconfig
image: ubuntu-21.10
- subarch: ppc64le
defconfig: allmodconfig
image: ubuntu-21.10
merge_config: /linux/arch/powerpc/configs/le.config
# ppc64 allmod and allyes
- subarch: ppc64
defconfig: allmodconfig
image: ubuntu-21.10
- subarch: ppc64
defconfig: allyesconfig
image: ubuntu-21.10
# ppc32 allmod
- subarch: ppc
defconfig: ppc32_allmodconfig
image: ubuntu-21.10
# ppc64 book3e allmod
- subarch: ppc64
defconfig: ppc64_book3e_allmodconfig
image: ubuntu-21.10

env:
ARCH: powerpc
TARGET: kernel
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@v2

- 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: build
run: ./arch/powerpc/tools/ci-build.sh

- name: Archive artifacts
uses: actions/upload-artifact@v2
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
55 changes: 55 additions & 0 deletions .github/workflows/powerpc-extrawarn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
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, ppc40x, ppc44x, mpc885_ads, corenet32_smp]
image: [fedora-33, korg-4.9.4]
subarch: [ppc64]
include:
- subarch: ppc64le
defconfig: ppc64le
image: korg-5.5.0
- subarch: ppc64le
defconfig: ppc64le
image: fedora-33

env:
ARCH: powerpc
TARGET: kernel
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@v2

- 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: build
run: ./arch/powerpc/tools/ci-build.sh

- name: Archive artifacts
uses: actions/upload-artifact@v2
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
195 changes: 195 additions & 0 deletions .github/workflows/powerpc-kernel+qemu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
name: powerpc/kernel+qemu

# 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:
matrix:
defconfig: [ppc64_defconfig, ppc40x_defconfig, mpc885_ads_defconfig]
image: [fedora-34, korg-5.5.0]
include:
# ppc64le
- defconfig: ppc64le_defconfig
image: korg-5.5.0
subarch: ppc64le
- defconfig: ppc64le_defconfig
image: fedora-34
subarch: ppc64le

# ppc64le_guest_defconfig
- subarch: ppc64le
defconfig: ppc64le_guest_defconfig
image: fedora-34
- subarch: ppc64le
defconfig: ppc64le_guest_defconfig
image: korg-5.5.0

# ppc44x
- defconfig: ppc44x_defconfig
merge_config: /linux/arch/powerpc/configs/ppc44x-qemu.config
image: fedora-34
- defconfig: ppc44x_defconfig
merge_config: /linux/arch/powerpc/configs/ppc44x-qemu.config
image: korg-5.5.0

# corenet64_smp
- defconfig: corenet64_smp_defconfig
merge_config: /linux/arch/powerpc/configs/ppc64e-qemu.config
image: fedora-34
- defconfig: corenet64_smp_defconfig
merge_config: /linux/arch/powerpc/configs/ppc64e-qemu.config
image: korg-5.5.0

# g5
- defconfig: g5_defconfig
merge_config: /linux/arch/powerpc/configs/g5-qemu.config
image: fedora-34
- defconfig: g5_defconfig
merge_config: /linux/arch/powerpc/configs/g5-qemu.config
image: korg-5.5.0

# pmac32
- defconfig: pmac32_defconfig
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config
image: fedora-34
- defconfig: pmac32_defconfig
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config
image: korg-5.5.0

- defconfig: corenet32_smp_defconfig
image: fedora-34

env:
ARCH: powerpc
TARGET: kernel
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
MERGE_CONFIG: ${{ matrix.merge_config }}

steps:
- uses: actions/checkout@v2

- 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: build
run: ./arch/powerpc/tools/ci-build.sh

- name: Archive artifacts
uses: actions/upload-artifact@v2
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
~/output/include/config/kernel.release
boot:
runs-on: ubuntu-latest
needs: kernel

strategy:
matrix:
include:
- defconfig: ppc64le_guest_defconfig
machine: pseries+p8+tcg
machine_2: pseries+p9+tcg
packages: qemu-system-ppc64
rootfs: ppc64le-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-34

- defconfig: ppc44x_defconfig
machine: 44x
packages: qemu-system-ppc
rootfs: ppc-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-34

- defconfig: corenet64_smp_defconfig
machine: ppc64e
machine_2: ppc64e+compat
packages: qemu-system-ppc64
rootfs: ppc64-novsx-rootfs.cpio.gz ppc-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-34

- defconfig: g5_defconfig
machine: g5
packages: qemu-system-ppc64 openbios-ppc
rootfs: ppc64-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-34

- defconfig: pmac32_defconfig
machine: mac99
packages: qemu-system-ppc openbios-ppc
rootfs: ppc-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-34

steps:
- uses: actions/checkout@v2
with:
repository: linuxppc/ci-scripts

- name: Download root disk
run: make -C root-disks ${{ matrix.rootfs }}

- name: Set root disk path
run: echo "ROOT_DISK_PATH=$PWD/root-disks" >> $GITHUB_ENV

- name: APT update
run: sudo apt update

- name: Install dependencies
run: sudo apt install -y ${{ matrix.packages }} python3-pexpect python3-termcolor python3-yaml

- uses: actions/download-artifact@v2
with:
name: ${{ matrix.defconfig }}-${{ matrix.new-image }}

- name: Run qemu-${{ matrix.machine }} with ${{ matrix.new-image }} build kernel
run: ./scripts/boot/qemu-${{ matrix.machine }}

- name: Run qemu-${{ matrix.machine_2 }} with ${{ matrix.new-image }} build kernel
run: ./scripts/boot/qemu-${{ matrix.machine_2 }}
if: matrix.machine_2 != ''

- uses: actions/download-artifact@v2
with:
name: ${{ matrix.defconfig }}-${{ matrix.old-image }}

- name: Run qemu-${{ matrix.machine }} with ${{ matrix.old-image }} build kernel
run: ./scripts/boot/qemu-${{ matrix.machine }}

- name: Run qemu-${{ matrix.machine_2 }} with ${{ matrix.old-image }} build kernel
run: ./scripts/boot/qemu-${{ matrix.machine_2 }}
if: matrix.machine_2 != ''
Loading

0 comments on commit d98baf3

Please sign in to comment.