mirror of
https://github.com/JasonN3/build-container-installer.git
synced 2025-12-25 02:47:56 +01:00
Automatically determine Flatpak dependencies (#86)
Co-authored-by: Noel Miller <noelmiller@protonmail.com>
This commit is contained in:
parent
f2305bbaf8
commit
b5c953d8d3
9 changed files with 88 additions and 12 deletions
41
action.yml
41
action.yml
|
|
@ -24,6 +24,10 @@ inputs:
|
|||
description: Whether to enable caching for skopeo
|
||||
required: false
|
||||
default: "false"
|
||||
enable_flatpak_dependencies:
|
||||
description: Whether to enable automatically determining Flatpak dependencies
|
||||
required: false
|
||||
default: "true"
|
||||
enrollment_password:
|
||||
description: Used for supporting secure boot (requires secure_boot_key_url to be defined)
|
||||
required: false
|
||||
|
|
@ -130,6 +134,42 @@ runs:
|
|||
mkdir /cache/dnf_new || true
|
||||
mkdir /cache/skopeo || true
|
||||
|
||||
- name: Determine Flatpak dependencies
|
||||
if: inputs.enable_flatpak_dependencies == 'true'
|
||||
id: flatpak_dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
image="${{ inputs.image_repo }}/${{ inputs.image_name }}:${{ inputs.image_tag }}"
|
||||
# Make temp space
|
||||
FLATPAK_DIR=$(basename $(mktemp -d -p ${{ github.workspace }} flatpak.XXX))
|
||||
# Get list of refs from directory
|
||||
sudo mkdir /github || true
|
||||
sudo ln -s ${{ github.workspace }} /github/workspace
|
||||
DIR_REFS=$(cat ${{ inputs.flatpak_remote_refs_dir }}/* | tr '\n' ' ' )
|
||||
# Generate install script
|
||||
cat << EOF > ${{ github.workspace }}/${FLATPAK_DIR}/script.sh
|
||||
cat /flatpak_dir/script.sh
|
||||
mkdir -p /flatpak/flatpak /flatpak/triggers
|
||||
mkdir /var/tmp || true
|
||||
chmod -R 1777 /var/tmp
|
||||
flatpak config --system --set languages "*"
|
||||
flatpak remote-add --system ${{ inputs.flatpak_remote_name }} ${{ inputs.flatpak_remote_url }}
|
||||
flatpak install --system -y ${{ inputs.flatpak_remote_refs }} ${DIR_REFS}
|
||||
ostree init --repo=/flatpak_dir/repo --mode=archive-z2
|
||||
for i in \$(ostree refs --repo=\${FLATPAK_SYSTEM_DIR}/repo | grep '^deploy/' | sed 's/^deploy\///g')
|
||||
do
|
||||
echo "Copying \${i}..."
|
||||
ostree --repo=/flatpak_dir/repo pull-local \${FLATPAK_SYSTEM_DIR}/repo \$(ostree --repo=\${FLATPAK_SYSTEM_DIR}/repo rev-parse ${{ inputs.flatpak_remote_name }}/\${i})
|
||||
mkdir -p \$(dirname /flatpak_dir/repo/refs/heads/\${i})
|
||||
ostree --repo=\${FLATPAK_SYSTEM_DIR}/repo rev-parse ${{ inputs.flatpak_remote_name }}/\${i} > /flatpak_dir/repo/refs/heads/\${i}
|
||||
done
|
||||
flatpak build-update-repo /flatpak_dir/repo
|
||||
ostree refs --repo=/flatpak_dir/repo
|
||||
EOF
|
||||
docker run --rm --privileged --entrypoint bash -e FLATPAK_SYSTEM_DIR=/flatpak/flatpak -e FLATPAK_TRIGGERSDIR=/flatpak/triggers --volume ${{ github.workspace }}/${FLATPAK_DIR}:/flatpak_dir ${image} /flatpak_dir/script.sh
|
||||
echo "flatpak_dir=${FLATPAK_DIR}" >> $GITHUB_OUTPUT
|
||||
docker rmi ${image}
|
||||
|
||||
- name: Run docker image
|
||||
env:
|
||||
ACTION_REPO: ${{ github.action_repository }}
|
||||
|
|
@ -183,6 +223,7 @@ runs:
|
|||
FLATPAK_REMOTE_NAME="${{ inputs.flatpak_remote_name }}" \
|
||||
${vars} \
|
||||
FLATPAK_REMOTE_URL="${{ inputs.flatpak_remote_url }}" \
|
||||
FLATPAK_DIR="${{ steps.flatpak_dependencies.outputs.flatpak_dir && format('/github/workspace/{0}', steps.flatpak_dependencies.outputs.flatpak_dir) || '' }}" \
|
||||
IMAGE_NAME="${{ inputs.image_name }}" \
|
||||
IMAGE_REPO="${{ inputs.image_repo }}" \
|
||||
IMAGE_TAG="${{ inputs.image_tag || inputs.version }}" \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue