Skip to content

Commit

Permalink
[CI:BUILD] GHA to build podman machine images
Browse files Browse the repository at this point in the history
[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <[email protected]>
  • Loading branch information
lsm5 committed Dec 1, 2023
1 parent 06c41b6 commit 5cda651
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
38 changes: 38 additions & 0 deletions .github/workflows/fcos-machine-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# This should get merged into fcos-podman-next-build.yml once ready
name: Build machine images with podman-next

on:
pull_request:
branches:
- main

env:
IMAGE_NAME: fcos
# IMAGE_ARCHS has to be comma separated
IMAGE_ARCHS: amd64, arm64
IMAGE_REGISTRY: quay.io/podman
COPR_OWNER: rhcontainerbot
COPR_PROJECT: podman-next

jobs:
fcos-podman-next-image-build:
runs-on: ubuntu-latest

steps:
- name: Install qemu dependency
run: |
sudo apt update
sudo apt -y install qemu-user-static podman
- name: Set up cosa
run: |
podman pull quay.io/coreos-assembler/coreos-assembler
cat ./contrib/podman-next/fcos-podmanimage/cosa-alias >> ~/.bashrc
cosa init https://github.com/coreos/fedora-coreos-config
- name: Build vhdx and qcow2 images
run: |
cosa fetch
cosa build
#- name: Push to quay.io/podman/playground
5 changes: 5 additions & 0 deletions .github/workflows/fcos-podman-next-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ jobs:
org.opencontainers.image.description=FCOS image with rpms from rhcontainerbot/podman-next copr
org.opencontainers.image.revision=${{ github.sha }}
# TODO: Build qemu and vhdx images with cosa
# Is that doable here itself?
# 1. Clone cosa
# 2. cosa fetch
# 3. cosa build qcow, hyperv

- name: Echo Outputs
run: |
Expand Down
28 changes: 28 additions & 0 deletions contrib/podman-next/fcos-podmanimage/cosa-alias
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

cosa() {
env | grep COREOS_ASSEMBLER
local -r COREOS_ASSEMBLER_CONTAINER_LATEST="quay.io/coreos-assembler/coreos-assembler:latest"
if [[ -z ${COREOS_ASSEMBLER_CONTAINER} ]] && $(podman image exists ${COREOS_ASSEMBLER_CONTAINER_LATEST}); then
local -r cosa_build_date_str="$(podman inspect -f "{{.Created}}" ${COREOS_ASSEMBLER_CONTAINER_LATEST} | awk '{print $1}')"
local -r cosa_build_date="$(date -d ${cosa_build_date_str} +%s)"
if [[ $(date +%s) -ge $((cosa_build_date + 60*60*24*7)) ]] ; then
echo -e "\e[0;33m----" >&2
echo "The COSA container image is more that a week old and likely outdated." >&2
echo "You should pull the latest version with:" >&2
echo "podman pull ${COREOS_ASSEMBLER_CONTAINER_LATEST}" >&2
echo -e "----\e[0m" >&2
sleep 10
fi
fi
set -x
podman run --rm -ti --security-opt=label=disable --privileged \
--uidmap=1000:0:1 --uidmap=0:1:1000 --uidmap=1001:1001:64536 \
-v=${PWD}:/srv/ --device=/dev/kvm --device=/dev/fuse \
--tmpfs=/tmp -v=/var/tmp:/var/tmp --name=cosa \
${COREOS_ASSEMBLER_CONFIG_GIT:+-v=$COREOS_ASSEMBLER_CONFIG_GIT:/srv/src/config/:ro} \
${COREOS_ASSEMBLER_GIT:+-v=$COREOS_ASSEMBLER_GIT/src/:/usr/lib/coreos-assembler/:ro} \
${COREOS_ASSEMBLER_ADD_CERTS:+-v=/etc/pki/ca-trust:/etc/pki/ca-trust:ro} \
${COREOS_ASSEMBLER_CONTAINER_RUNTIME_ARGS} \
${COREOS_ASSEMBLER_CONTAINER:-$COREOS_ASSEMBLER_CONTAINER_LATEST} "$@"
rc=$?; set +x; return $rc
}

0 comments on commit 5cda651

Please sign in to comment.