Skip to content

edpm-bootc image builder #37

edpm-bootc image builder

edpm-bootc image builder #37

Workflow file for this run

name: edpm-bootc image builder
on:
push:
branches:
- '*'
paths:
- bootc/**
- .github/workflows/edpm-bootc.yaml
workflow_dispatch:
env:
imageregistry: 'quay.io'
imagenamespace: ${{ secrets.IMAGENAMESPACE || secrets.QUAY_USERNAME }}
latesttag: latest
podified: current-podified
EDPM_BASE_IMAGE: quay.io/centos-bootc/centos-bootc:stream9
jobs:
check-secrets:
runs-on: ubuntu-latest
steps:
- name: Check secrets are set
id: have-secrets
if: "${{ env.imagenamespace != '' }}"
run: echo "ok=true" >> $GITHUB_OUTPUT
outputs:
have-secrets: ${{ steps.have-secrets.outputs.ok }}
build-edpm-bootc:
name: Build edpm-bootc using Makefile
runs-on: ubuntu-latest
needs: [check-secrets]
if: needs.check-secrets.outputs.have-secrets == 'true'
defaults:
run:
shell: bash
working-directory: ./bootc
steps:
- uses: actions/checkout@v4
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v8
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Set EDPM_* env vars
run: |
echo "EDPM_BOOTC_REPO=${{ env.imageregistry }}/${{ env.imagenamespace }}/edpm-bootc" >> $GITHUB_ENV
echo "EDPM_BOOTC_TAG=${{ env.latesttag }}" >> $GITHUB_ENV
- name: Build output/yum.repos.d
id: build-output-yum-repos-d
run: |
podman run --rm -it -v .:/bootc:rw,z quay.io/centos/centos:stream9 /bin/bash -c "cd bootc; dnf -y install make; make output/yum.repos.d"
- name: Build and tag edpm-bootc container image
id: buildah-build-edpm-bootc
uses: redhat-actions/buildah-build@v2
with:
image: edpm-bootc
tags: ${{ env.latesttag }} ${{ github.sha }} ${{ env.podified }}
build-args:
EDPM_BASE_IMAGE=${{ env.EDPM_BASE_IMAGE }}
extra-args:
--volume /home/runner/work/edpm-image-builder/edpm-image-builder/bootc/output/yum.repos.d:/etc/yum.repos.d:rw,Z
containerfiles: |
./bootc/Containerfile
context: bootc
- name: Push edpm-bootc container image to ${{ env.imageregistry }}
id: push-edpm-bootc
uses: redhat-actions/push-to-registry@v2
with:
image: edpm-bootc
tags: ${{ env.latesttag }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Print image url and digest
run: |
echo "Image pushed to ${{ steps.push-edpm-bootc.outputs.registry-paths }}"
echo "Image digest: ${{ steps.push-edpm-bootc.outputs.digest }}"
- name: bootc-image-builder edpm-bootc qcow2 image
id: edpm-bootc-qcow2-image-builder
run: |
# workaround https://github.com/containers/podman/issues/21683
sudo apt install -y sqlite3
echo "update DBConfig set GraphDriver = 'overlay' where GraphDriver = '';" | sudo sh -c '(cd /var/lib/containers/storage && sqlite3 db.sql)'
make output
# Pull the edpm-bootc container image as sudo. Previous build commands
# don't use sudo.
sudo podman pull ${{ env.imageregistry }}/${{ env.imagenamespace }}/edpm-bootc:${{ env.latesttag }}
make edpm-bootc.qcow2-no-build
make package-cp-deps
- name: Build and tag edpm-bootc qcow2 container image
id: buildah-build-edpm-bootc-qcow2
uses: redhat-actions/buildah-build@v2
with:
image: edpm-bootc
tags: ${{ env.latesttag }}-qcow2 ${{ github.sha }}-qcow2
containerfiles: |
./bootc/output/Containerfile.image
context: bootc/output
build-args: |
IMAGE_NAME=edpm-bootc
- name: Push edpm-bootc qcow2 container image to ${{ env.imageregistry }}
id: push-edpm-bootc-qcow2
uses: redhat-actions/push-to-registry@v2
with:
image: edpm-bootc
tags: ${{ env.latesttag }}-qcow2
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Print qcow2 image url and digest
run: |
echo "Image pushed to ${{ steps.push-edpm-bootc-qcow2.outputs.registry-paths }}"
echo "Image digest: ${{ steps.push-edpm-bootc-qcow2.outputs.digest }}"