diff --git a/.github/workflows/genesis_openembedded.yml b/.github/workflows/genesis_openembedded.yml new file mode 100644 index 000000000..b2ee14521 --- /dev/null +++ b/.github/workflows/genesis_openembedded.yml @@ -0,0 +1,54 @@ +name: genesis_openembedded +on: + pull_request: + paths: + - 'xCAT-genesis-builder/oe/**' + - 'xCAT-genesis-scripts/**' + - '.github/workflows/genesis_openembedded.yml' + workflow_dispatch: +jobs: + 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' diff --git a/.github/workflows/xcat_test.yml b/.github/workflows/xcat_test.yml index 04d50aff0..d23185138 100644 --- a/.github/workflows/xcat_test.yml +++ b/.github/workflows/xcat_test.yml @@ -10,49 +10,3 @@ jobs: 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 - 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'