Smoke test creation of Debian OpenStack images #1549
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Smoke test creation of Debian OpenStack images | |
on: | |
pull_request: | |
push: | |
schedule: | |
- cron: '0 16 * * 5' # Every Friday 4pm | |
jobs: | |
install_and_run: | |
name: Smoke test creation of Debian OpenStack images | |
strategy: | |
matrix: | |
debian_release: | |
# https://www.debian.org/releases/ | |
- buster | |
- bullseye | |
- bookworm | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Cache pip | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 | |
with: | |
python-version: 3.8 | |
- name: Install | |
run: |- | |
sudo pip3 install \ | |
--disable-pip-version-check \ | |
. | |
- name: Install runtime dependencies | |
run: |- | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --yes \ | |
debian-archive-keyring \ | |
debootstrap \ | |
kpartx \ | |
qemu-utils | |
- name: Smoke test creation of Debian OpenStack images | |
run: |- | |
cd /tmp # to not be in Git clone folder | |
image-bootstrap --help ; echo | |
image-bootstrap debian --help ; echo | |
truncate --size 2g /tmp/disk | |
LOOP_DEV="$(sudo losetup --show --find -f /tmp/disk | tee /dev/stderr)" | |
echo "LOOP_DEV=${LOOP_DEV}" >> "${GITHUB_ENV}" | |
sudo PYTHONUNBUFFERED=1 image-bootstrap --verbose --debug --openstack debian --release ${{ matrix.debian_release }} ${LOOP_DEV} | |
- name: Create .qcow2 image from loop device | |
run: |- | |
set -eux | |
git fetch --force --tags --unshallow origin # for "git describe" | |
img_base_name="debian-openstack-${{ matrix.debian_release }}-$(date '+%Y-%m-%d-%H-%M')-image-bootstrap-$(git describe --tags).qcow2" | |
sudo qemu-img convert -f raw -O qcow2 "${LOOP_DEV}" "${img_base_name}" | |
ls -lh "${img_base_name}" | |
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: debian-${{ matrix.debian_release }}-openstack-qcow2 | |
path: '*.qcow2' | |
if-no-files-found: error |