name: E2E Bare-Metal on: workflow_dispatch: permissions: contents: read statuses: write env: GIT_BRANCH: ${{ github.ref_name }} jobs: e2e_baremetal: name: Bare-Metal Multi-Node E2E runs-on: [ self-hosted, ci-baremetal ] timeout-minutes: 120 concurrency: group: e2e-baremetal-cluster cancel-in-progress: false env: BM_ISO_CACHE: /var/cache/spinifex-iso-builder steps: - name: Clean Workspace run: sudo 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: Install SSH Key run: | echo "${{ secrets.BM_SSH_PRIVATE_KEY }}" > "${RUNNER_TEMP}/bm-ci" chmod 0600 "${RUNNER_TEMP}/bm-ci" ssh-keygen -y -f "${RUNNER_TEMP}/bm-ci" > "${RUNNER_TEMP}/bm-ci.pub" - 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" \ SPINIFEX_SRC="${GITHUB_WORKSPACE}" \ VIPERBLOCK_SRC="${RUNNER_TEMP}/bm-bins/viperblock" \ VERSION="$(cd "$GITHUB_WORKSPACE" && git describe --tags --always 2>/dev/null || echo dev)" - name: Write ePDU credentials run: | install -m 0600 /dev/null "${RUNNER_TEMP}/epdu.env" cat >> "${RUNNER_TEMP}/epdu.env" <