| #!/bin/bash |
| |
| set -eu |
| set -x |
| |
| ARTIFACT_DIR=$(mktemp -d) |
| |
| trap 'rm -rf ${ARTIFACT_DIR}' EXIT |
| |
| function acquire() { |
| local target="$1" |
| wget --quiet --show-progress --directory-prefix="${ARTIFACT_DIR}" https://jenkins.openbmc.org/view/latest/job/latest-master/lastSuccessfulBuild/label=docker-builder,target="${target}"/artifact/openbmc/build/tmp/deploy/images/"${target}"/'*zip*'/"${target}".zip |
| unzip -qq -d "${ARTIFACT_DIR}" "${ARTIFACT_DIR}"/"${target}".zip |
| echo "${ARTIFACT_DIR}"/"${target}" |
| } |
| |
| # AST2400 |
| PALMETTO_ARTIFACTS="$(acquire palmetto)" |
| PALMETTO_MTD="$(echo "${PALMETTO_ARTIFACTS}"/obmc-phosphor-image-palmetto-*.static.mtd)" |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm \ |
| -M palmetto-bmc \ |
| -drive file=${PALMETTO_MTD},if=mtd,format=raw \ |
| -nographic \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ |
| -c 'set timeout 300' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |
| |
| # AST2500 |
| WITHERSPOON_ARTIFACTS="$(acquire witherspoon)" |
| WITHERSPOON_MTD="$(echo "${WITHERSPOON_ARTIFACTS}"/obmc-phosphor-image-witherspoon-*.ubi.mtd)" |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm \ |
| -M witherspoon-bmc \ |
| -drive file=${WITHERSPOON_MTD},if=mtd,format=raw \ |
| -nographic \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ |
| -c 'set timeout 300' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |
| |
| # AST2600 |
| P10BMC_ARTIFACTS="$(acquire p10bmc)" |
| |
| P10BMC_WIC_XZ="$(echo "${P10BMC_ARTIFACTS}"/obmc-phosphor-image-p10bmc-*.wic.xz)" |
| P10BMC_MMC="${P10BMC_WIC_XZ%.xz}" |
| P10BMC_UBOOT_SPL="$(echo "${P10BMC_ARTIFACTS}"/u-boot-spl.bin-*)" |
| P10BMC_UBOOT="$(echo "${P10BMC_ARTIFACTS}"/u-boot-p10bmc-*.bin)" |
| |
| dd of="$P10BMC_MMC" if=/dev/zero bs=1M count=2 |
| dd of="$P10BMC_MMC" if="$P10BMC_UBOOT_SPL" conv=notrunc |
| dd of="$P10BMC_MMC" if="$P10BMC_UBOOT" conv=notrunc bs=1K seek=64 |
| |
| xz --decompress --stdout --keep "$P10BMC_WIC_XZ" | dd of="$P10BMC_MMC" conv=notrunc bs=1M seek=2 |
| |
| truncate -s 16G "$P10BMC_MMC" |
| |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm -M rainier-bmc \ |
| -drive file=${P10BMC_MMC},if=sd,format=raw,index=2 \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \ |
| -nographic" \ |
| -c 'set timeout 300' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |