Skip to content

powerpc/kernel+qemu #31

powerpc/kernel+qemu

powerpc/kernel+qemu #31

name: powerpc/kernel+qemu
# Controls when the action will run.
on:
# run at 2:30am AEST == 4:30pm UTC
schedule:
- cron: '30 16 * * *'
# This allows the build to be triggered manually via the github UI.
workflow_dispatch:
jobs:
kernel:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
defconfig: [ppc64_defconfig, mpc885_ads_defconfig]
image: [fedora-40, korg-5.5.0]
include:
# ppc64le_guest_defconfig
- subarch: ppc64le
defconfig: ppc64le_guest_defconfig
image: fedora-40
- 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-40
- 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-40
- defconfig: corenet64_smp_defconfig
image: korg-5.5.0
# g5
- defconfig: g5_defconfig
merge_config: /linux/arch/powerpc/configs/g5-qemu.config
image: fedora-40
- 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-40
- defconfig: pmac32_defconfig
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config
image: korg-5.5.0
- defconfig: corenet32_smp_defconfig
image: fedora-40
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@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
~/output/include/config/kernel.release
boot:
runs-on: ubuntu-latest
needs: kernel
strategy:
fail-fast: false
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-40
- 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-40
- defconfig: ppc44x_defconfig
machine: 44x
packages: qemu-system-ppc
rootfs: ppc-rootfs.cpio.gz
old-image: korg-5.5.0
new-image: fedora-40
- 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-40
- 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-40
- 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-40
steps:
- uses: actions/checkout@v4
with:
repository: linuxppc/ci-scripts
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Download root disk
run: make -C root-disks ${{ matrix.rootfs }}
- 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@v4
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@v4
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 != ''