Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ inputs:
You should prefer adjusting root-reserve-mb/temp-reserve-mb over using this option.
required: false
default: 'false'
filesystem-type:
description: 'The filesystem to use'
required: false
default: 'ext4'
btrfs-compression-level:
description: 'The compression level to use if the filesystem is btrfs'
required: false
default: '0'
build-mount-path:
description: 'Absolute path to the mount point where the build space will be available, defaults to $GITHUB_WORKSPACE if unset.'
required: false
Expand Down Expand Up @@ -177,12 +185,27 @@ runs:
echo "Creating build volume"
# create and mount build volume
sudo lvcreate -l 100%FREE -n buildlv "${VG_NAME}"
if [[ ${{ inputs.overprovision-lvm }} == 'true' ]]; then
sudo mkfs.ext4 -m0 "/dev/mapper/${VG_NAME}-buildlv"
if [[ ${inputs.filesystem-type} == 'btrfs' ]]; then
sudo mkfs.btrfs -m single -d single "/dev/mapper/${VG_NAME}-buildlv"

mount_options=('space_cache=v2' 'noatime')
if [[ ${{ inputs.overprovision-lvm }} == 'true' ]]; then
mount_options+=('discard=async')
else
mount_options+=('nodiscard')
fi
if [[ ${{ inputs.btrfs-compression-level }} != '0' ]]; then
mount_options+=("compress-force=zstd:${inputs.build-compression-level}")
fi
IFS="," sudo mount -t btrfs -o ${mount_options[*]} "/dev/mapper/${VG_NAME}-buildlv" "${BUILD_MOUNT_PATH}"
else
sudo mkfs.ext4 -Enodiscard -m0 "/dev/mapper/${VG_NAME}-buildlv"
if [[ ${{ inputs.overprovision-lvm }} == 'true' ]]; then
sudo mkfs.ext4 -m0 "/dev/mapper/${VG_NAME}-buildlv"
else
sudo mkfs.ext4 -Enodiscard -m0 "/dev/mapper/${VG_NAME}-buildlv"
fi
IFS="," sudo mount -t ext4 "/dev/mapper/${VG_NAME}-buildlv" "${BUILD_MOUNT_PATH}"
fi
sudo mount "/dev/mapper/${VG_NAME}-buildlv" "${BUILD_MOUNT_PATH}"
sudo chown -R "${{ inputs.build-mount-path-ownership }}" "${BUILD_MOUNT_PATH}"

# if build mount path is a parent of $GITHUB_WORKSPACE, and has been deleted, recreate it
Expand Down