mirror-ublue-os-titanoboa/action.yml

53 lines
1.5 KiB
YAML
Raw Normal View History

name: Titanoboa LiveCD ISO builder
description: >-
Create LiveCDs of a bootc container image.
The resulting iso will be placed at `output.iso`.
inputs:
image-ref:
description: Reference to the bootc container image to build the ISO from.
required: true
iso-dest:
description: Where the iso will be placed
required: false
default: ${{ github.workspace }}/output.iso
outputs:
iso-dest:
description: Where the iso was be placed
value: ${{ steps.generate-iso.outputs.iso_dest }}
runs:
using: composite
steps:
- name: Generate iso
id: generate-iso
env:
DESTINATION_PATH: ${{ inputs.iso-dest }}
TITANOBOA_CTR_IMAGE: ${{ inputs.image-ref }}
shell: bash
run: |
set -euxo pipefail
cd "$GITHUB_ACTION_PATH" || exit 1
# Build ISO
ISO_FILENAME="$(env TITANOBOA_CTR_IMAGE="$TITANOBOA_CTR_IMAGE" "$GITHUB_ACTION_PATH"/main.sh)"
# Fix iso file permisions
sudo chown $(id -u):$(id -g) "$ISO_FILENAME"
# Move iso to iso-dest
dest="$(realpath --relative-base="${GITHUB_WORKSPACE}" "${DESTINATION_PATH}")"
dest="$(realpath -m $dest)"
mkdir -p "$(dirname "$dest")"
mv "$ISO_FILENAME" "$dest"
echo "iso_dest=$dest" >> "$GITHUB_OUTPUT"
- name: Check the iso is there
shell: bash
env:
DEST_ISO: ${{ steps.generate-iso.outputs.iso_dest }}
run: |
[[ -f "${DEST_ISO}" ]] || {
echo "::error:Iso file does not exist at ${DEST_ISO}"
exit 1
}