2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-07 10:06:39 +00:00
Files
xcat-core/.github/workflows/xcat_test.yml
T
Daniel Hilst bcc6acab5f fix(provtest): build the grub2 loader on Debian too, and run without one
The CI runner is Ubuntu, where the program is grub-mkimage and not
grub2-mkimage, so the fixture built no loader; grub2.pm writes no
configuration at all for a node whose loader is missing, setup died on the
node every later stage needs, and all eight wire cases failed for that one
reason.

Both names are tried now, and the EFI and BIOS module trees under either
/usr/lib/grub or /usr/lib/grub2. Where none of that exists the node is set
with xnba instead, and the stages that read a grub2 config say which
assertions they left out. The workflow installs grub-common and
grub-efi-amd64-bin so the runner tests the grub2 path itself.
2026-09-11 11:25:55 -03:00

59 lines
2.6 KiB
YAML

name: xcat_test
on: [pull_request, workflow_dispatch]
jobs:
xcat_pr_test:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests bats build-essential fakeroot reprepro devscripts debhelper libcapture-tiny-perl libfile-slurper-perl libjson-perl libparallel-forkmanager-perl libsoap-lite-perl libdbi-perl libcgi-pm-perl quilt openssh-server dpkg looptools genometools software-properties-common grub-common grub-efi-amd64-bin
- name: Run tests
run: perl github_action_xcat_test.pl
genesis_openembedded:
name: OpenEmbedded metadata
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.12'
cache: pip
cache-dependency-path: xCAT-genesis-builder/oe/requirements.txt
- name: Install OpenEmbedded host dependencies
run: >-
sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y
--no-install-recommends --no-install-suggests
build-essential chrpath cpio diffstat file gawk git locales
lz4 openssl socat texinfo unzip wget xz-utils zstd
- name: Install KAS
run: python -m pip install -r xCAT-genesis-builder/oe/requirements.txt
- name: Enable BitBake user namespaces
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- name: Validate every architecture configuration
shell: bash
env:
KAS_WORK_DIR: ${{ runner.temp }}/kas-work
run: |
set -euo pipefail
for architecture in x86 x86_64 ppc64 ppc64le armv7hf aarch64 riscv64 s390x; do
export KAS_BUILD_DIR="${RUNNER_TEMP}/kas-build-${architecture}"
configuration="xCAT-genesis-builder/oe/kas/${architecture}.yml"
kas dump "${configuration}" >/dev/null
kas shell "${configuration}" -c 'bitbake -p'
done
- name: Validate the image task graph
shell: bash
env:
KAS_WORK_DIR: ${{ runner.temp }}/kas-work
KAS_BUILD_DIR: ${{ runner.temp }}/kas-build-x86_64
run: |
set -euo pipefail
kas shell xCAT-genesis-builder/oe/kas/x86_64.yml -c \
'bitbake -n xcat-genesis-image xcat-genesis-extension-smoke'
export KAS_BUILD_DIR="${RUNNER_TEMP}/kas-build-s390x"
kas shell xCAT-genesis-builder/oe/kas/s390x.yml -c \
'bitbake -n xcat-genesis-image xcat-genesis-extension-smoke'