5858 echo "DISK_TYPE=${DISK_TYPE}" >> ${GITHUB_ENV}
5959 echo "USER_UID=${USER_UID}" >> ${GITHUB_ENV}
6060 echo "USER_GID=${USER_GID}" >> ${GITHUB_ENV}
61+ CONFIG_FILE="./disk_config/disk.toml"
62+ if [[ "${{ matrix.disk-type }}" == "anaconda-iso" ]]; then
63+ CONFIG_FILE="./disk_config/iso.toml"
64+ fi
65+ echo "CONFIG_FILE=${CONFIG_FILE}" >> ${GITHUB_ENV}
6166
6267 - name : Install dependencies
6368 if : inputs.platform == 'arm64'
@@ -83,64 +88,24 @@ jobs:
8388 - name : Checkout
8489 uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
8590
86- - name : Build disk images
87- id : build
88- shell : bash
91+ - name : Configure podman defaults
8992 run : |
90- set -euo pipefail
91- sudo rm -rf ./output
92- mkdir -p ./output
93- osbuild_dir="${GITHUB_WORKSPACE}/.osbuild"
94- var_tmp_dir="${GITHUB_WORKSPACE}/.var_tmp"
95- graphroot="${GITHUB_WORKSPACE}/.containers/storage"
96- containers_conf="${GITHUB_WORKSPACE}/containers.conf"
97- run_libpod_dir="${GITHUB_WORKSPACE}/.run/libpod"
98- run_containers_storage_dir="${GITHUB_WORKSPACE}/.run/containers/storage"
99- run_crun_dir="${GITHUB_WORKSPACE}/.run/crun"
100- osbuild_store_dir="${GITHUB_WORKSPACE}/.osbuild-store"
101- osbuild_rpmmd_dir="${GITHUB_WORKSPACE}/.osbuild-rpmmd"
102- sudo rm -rf "${osbuild_dir}" "${var_tmp_dir}" "${graphroot}" "${run_libpod_dir}" "${run_containers_storage_dir}" "${run_crun_dir}" "${osbuild_store_dir}" "${osbuild_rpmmd_dir}"
103- sudo mkdir -p "${osbuild_dir}" "${var_tmp_dir}" "${graphroot}" "${run_libpod_dir}" "${run_containers_storage_dir}" "${run_crun_dir}" "${osbuild_store_dir}" "${osbuild_rpmmd_dir}"
104- sudo umount /var/lib/containers/storage || true
105- sudo rm -rf /var/lib/containers/storage
106- sudo mkdir -p /var/lib/containers/storage
107- sudo mount --bind "${graphroot}" /var/lib/containers/storage
108- cat > "${containers_conf}" <<EOF
93+ sudo mkdir -p /etc/containers
94+ cat <<'EOF' | sudo tee /etc/containers/containers.conf
10995 [engine]
11096 events_logger = "none"
11197 EOF
11298
113- config_file="./disk_config/disk.toml"
114- extra_args="--use-librepo=True --rootfs btrfs"
115- if [[ "${{ matrix.disk-type }}" == "anaconda-iso" ]]; then
116- config_file="./disk_config/iso.toml"
117- fi
118-
119- sudo CONTAINERS_CONF="${containers_conf}" \
120- podman pull "${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }}"
121-
122- sudo podman run --rm --privileged \
123- --security-opt label=type:unconfined_t \
124- --volume "${graphroot}:/var/lib/containers/storage" \
125- --volume "${osbuild_dir}:/run/osbuild" \
126- --volume "${var_tmp_dir}:/var/tmp" \
127- --volume "${run_libpod_dir}:/run/libpod" \
128- --volume "${run_containers_storage_dir}:/run/containers/storage" \
129- --volume "${run_crun_dir}:/run/crun" \
130- --volume "${osbuild_store_dir}:/store" \
131- --volume "${osbuild_rpmmd_dir}:/rpmmd" \
132- --volume ./output:/output \
133- --volume "${config_file}:/config.toml:ro" \
134- --volume "${containers_conf}:/etc/containers/containers.conf:ro" \
135- quay.io/centos-bootc/bootc-image-builder:latest build \
136- --output /output \
137- --chown "${{ env.USER_UID }}:${{ env.USER_GID }}" \
138- ${extra_args} \
139- --type "${{ matrix.disk-type }}" \
140- "${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }}"
141-
142- echo "output-directory=$(pwd)/output" >> "$GITHUB_OUTPUT"
143-
99+ - name : Build disk images
100+ id : build
101+ uses : osbuild/bootc-image-builder-action@019bb59c5100ecec4e78c9e94e18a840110f7a0b # v0.0.2
102+ with :
103+ config-file : ${{ env.CONFIG_FILE }}
104+ image : ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }}
105+ rootfs : btrfs
106+ additional-args : --use-librepo=True
107+ types : ${{ matrix.disk-type }}
108+ chown : ${{ env.USER_UID }}:${{ env.USER_GID }}
144109
145110 - name : Upload disk images and Checksum to Job Artifacts
146111 if : inputs.upload-to-s3 != true && github.event_name != 'pull_request'
0 commit comments