From 374f2ed7a35528efc678c7d18b28eadb79527d7a Mon Sep 17 00:00:00 2001 From: joshsiv-mulga Date: Thu, 7 May 2026 15:37:32 +1000 Subject: [PATCH] =?UTF-8?q?feat(ci):=20add=20e2e-baremetal=20workflow=20?= =?UTF-8?q?=E2=80=94=20workflow=5Fdispatch=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Separate from normal e2e. Checks out spinifex, checks out mulga scripts (sparse: iso-builder + baremetal), builds spx + test tar via bm-build-artifacts.sh, builds PXE artifacts (squashfs/initrd/vmlinuz) via iso-builder with persistent cache on banksia, then runs run-baremetal-e2e.sh against the single bare-metal node. --- .github/workflows/e2e-baremetal.yml | 70 +++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/e2e-baremetal.yml diff --git a/.github/workflows/e2e-baremetal.yml b/.github/workflows/e2e-baremetal.yml new file mode 100644 index 000000000..75fd78903 --- /dev/null +++ b/.github/workflows/e2e-baremetal.yml @@ -0,0 +1,70 @@ +name: E2E Bare-Metal + +on: + workflow_dispatch: + +permissions: + statuses: write + +env: + GIT_BRANCH: ${{ github.ref_name }} + +jobs: + e2e_baremetal: + name: Bare-Metal Single-Node E2E + runs-on: [ self-hosted, ci-baremetal ] + timeout-minutes: 60 + concurrency: + group: e2e-baremetal-cluster + cancel-in-progress: false + env: + BM_ISO_CACHE: /var/cache/spinifex-iso-builder + steps: + - name: Clean Workspace + run: rm -rf "$GITHUB_WORKSPACE"/* + + - uses: actions/checkout@v6 + + - uses: actions/create-github-app-token@v3 + id: app-token + with: + client-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + repositories: mulga + + - uses: actions/checkout@v6 + with: + repository: mulgadc/mulga + token: ${{ steps.app-token.outputs.token }} + sparse-checkout: | + scripts/iso-builder + scripts/baremetal + path: mulga + + - name: Build Artifacts + run: | + mulga/scripts/baremetal/bm-build-artifacts.sh \ + "$GITHUB_WORKSPACE" \ + "${RUNNER_TEMP}/spinifex-tests.tar" \ + "${RUNNER_TEMP}/bm-bins" + + - name: Build PXE Artifacts + run: | + sudo make -C mulga/scripts/iso-builder \ + build-rootfs build-squashfs build-initramfs \ + CACHE="${BM_ISO_CACHE}" \ + SPINIFEX_BIN="${RUNNER_TEMP}/bm-bins/spx" \ + INSTALLER_BIN="${RUNNER_TEMP}/bm-bins/spinifex-installer" \ + VERSION="$(cd "$GITHUB_WORKSPACE" && git describe --tags --always 2>/dev/null || echo dev)" + + - name: Run Bare-Metal E2E + env: + BM_CI_PASSWORD: ${{ secrets.BM_CI_PASSWORD }} + BM_SSH_KEY: /home/tf-user/.ssh/bm-ci + SPX_EXTERNAL_POOL: ${{ env.SPINIFEX_CI_POOL }} + run: | + sudo -E mulga/scripts/baremetal/run-baremetal-e2e.sh \ + --vmlinuz "${BM_ISO_CACHE}/vmlinuz" \ + --initrd "${BM_ISO_CACHE}/initrd.img" \ + --squashfs "${BM_ISO_CACHE}/spinifex.squashfs" \ + --tests-tar "${RUNNER_TEMP}/spinifex-tests.tar"