1
name: Build FCOS image with packages from rhcontainerbot/podman-next
7
# Run everyday at midnight and pull the latest packages from the copr
13
# IMAGE_ARCHS has to be comma separated
14
IMAGE_ARCHS: amd64, arm64
15
IMAGE_REGISTRY: quay.io/podman
16
COPR_OWNER: rhcontainerbot
17
COPR_PROJECT: podman-next
20
fcos-podman-next-image-build:
21
runs-on: ubuntu-latest
24
- name: Install qemu dependency
27
sudo apt -y install qemu-user-static
29
- name: Set up wait-for-copr
30
# Do not run on scheduled nightly builds
31
if: ${{ github.event_name != 'schedule' }}
33
pip3 install git+https://github.com/packit/wait-for-copr.git@main
35
- name: Check out code
36
uses: actions/checkout@v4
38
- name: Get short SHA from HEAD
39
run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
42
- name: Wait for successful podman-next build with the latest commit
43
# Do not run on scheduled nightly builds
44
if: ${{ github.event_name != 'schedule' }}
46
# TODO: add this in the Containerfile itself or as a --build-arg
47
wait-for-copr --owner ${{ env.COPR_OWNER }} --project ${{ env.COPR_PROJECT }} podman ${{ env.SHORT_SHA }}
48
echo "podman-next build successful."
50
- name: Build FCOS Image
51
id: build_image_multiarch
52
# Ref: https://github.com/redhat-actions/buildah-build
53
uses: redhat-actions/buildah-build@v2
55
image: ${{ env.IMAGE_NAME }}
56
tags: ${{ env.COPR_PROJECT }} podman-${{ env.SHORT_SHA }}
57
archs: ${{ env.IMAGE_ARCHS }}
58
containerfiles: ./contrib/podman-next/fcos-podmanimage/Containerfile
60
org.opencontainers.image.title=fcos-podman-next image
61
org.opencontainers.image.source=https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/contrib/podman-next/fcos-podmanimage/Containerfile
62
org.opencontainers.image.url=https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
63
org.opencontainers.image.description=FCOS image with rpms from rhcontainerbot/podman-next copr
64
org.opencontainers.image.revision=${{ github.sha }}
69
echo "Image: ${{ steps.build_image_multiarch.outputs.image }}"
70
echo "Tags: ${{ steps.build_image_multiarch.outputs.tags }}"
71
echo "Tagged Image: ${{ steps.build_image_multiarch.outputs.image-with-tag }}"
73
- name: Check images created
74
run: buildah images | grep '${{ env.IMAGE_NAME }}'
76
- name: Check image metadata
79
# COPR_PROJECT envvar is used for the `podman-next` floating tag
80
buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".OCIv1.architecture"
81
buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".Docker.architecture"
82
buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".OCIv1.architecture"
83
buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".Docker.architecture"
86
run: podman run --privileged --rm ${{ steps.build_image_multiarch.outputs.image-with-tag }} podman system info
90
# Ref: https://github.com/redhat-actions/push-to-registry
91
uses: redhat-actions/push-to-registry@v2
93
image: ${{ env.IMAGE_NAME }}
94
tags: ${{ steps.build_image_multiarch.outputs.tags }}
95
registry: ${{ env.IMAGE_REGISTRY }}
96
username: ${{ secrets.QUAY_PODMAN_USERNAME }}
97
password: ${{ secrets.QUAY_PODMAN_PASSWORD }}