Skip to content

powerpc/kernel+qemu #909

powerpc/kernel+qemu

powerpc/kernel+qemu #909

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-38, korg-5.5.0]
include:
# ppc64le_guest_defconfig
- subarch: ppc64le
defconfig: ppc64le_guest_defconfig
image: fedora-38
- 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-38
- defconfig: ppc44x_defconfig
merge_config: /linux/arch/powerpc/configs/ppc44x-qemu.config
image: korg-5.5.0
# corenet64_smp
- defconfig: corenet64_smp_defconfig
image: fedora-38
- defconfig: corenet64_smp_defconfig
image: korg-5.5.0
# g5
- defconfig: g5_defconfig
merge_config: /linux/arch/powerpc/configs/g5-qemu.config
image: fedora-38
- 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-38
- defconfig: pmac32_defconfig
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config
image: korg-5.5.0
- defconfig: corenet32_smp_defconfig
image: fedora-38
env:
ARCH: powerpc
TARGET: kernel
CCACHE: 1
SUBARCH: ${{ matrix.subarch }}
IMAGE: ${{ matrix.image }}
DEFCONFIG: ${{ matrix.defconfig }}
MERGE_CONFIG: ${{ matrix.merge_config }}
steps:
- uses: actions/checkout@v3
- 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@v3
with:
path: ~/.ccache
key: ${{ matrix.image }}-${{ matrix.subarch }}-${{ matrix.defconfig }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
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@v3
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-38
- defconfig: ppc64le_guest_defconfig
machine: powernv+p8+tcg
machine_2: powernv+p9+tcg
packages: qemu-system-ppc64
rootfs: ppc64le-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-38
- defconfig: ppc44x_defconfig
machine: 44x
packages: qemu-system-ppc
rootfs: ppc-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-38
- 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-38
- 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-38
- 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-38
steps:
- uses: actions/checkout@v3
with:
repository: linuxppc/ci-scripts
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- 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@v3
with:
name: ${{ matrix.defconfig }}-${{ matrix.new-image }}
- name: Disable network tests
run: echo "QEMU_NET_TESTS=0" >> $GITHUB_ENV
- 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@v3
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 != ''