diff --git a/.github/setup-runner-keys.sh b/.github/setup-runner-keys.sh new file mode 100755 index 0000000..76ed0d8 --- /dev/null +++ b/.github/setup-runner-keys.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Setup Public Keys for containers that are pulled during the build + +set -eoux pipefail + +PKI_DIR="/etc/pki/containers" +REGISTRIES="/etc/containers/registries.d" + +mkdir -p "${PKI_DIR}" "${REGISTRIES}" +cp ghcr.io-ublue-os.pub "${PKI_DIR}/ghcr.io-ublue-os.pub" + +yq -n '.docker."ghcr.io/ublue-os".use-sigstore-attachments = true' | tee "${REGISTRIES}"/ublue-os.yaml + +jq '.transports.docker["ghcr.io/ublue-os"] = [ + { + "type": "sigstoreSigned", + "keyPath": "/etc/pki/containers/ghcr.io-ublue-os.pub", + "signedIdentity": { + "type": "matchRepository" + } + } +]' /etc/containers/policy.json | tee /etc/containers/policy.json.tmp > /dev/null && mv /etc/containers/policy.json.tmp /etc/containers/policy.json diff --git a/.github/workflows/build-iso-stable.yml b/.github/workflows/build-iso-stable.yml index 66bf2b5..d423269 100644 --- a/.github/workflows/build-iso-stable.yml +++ b/.github/workflows/build-iso-stable.yml @@ -8,6 +8,8 @@ on: paths: - ".github/workflows/build-iso-stable.yml" - ".github/workflows/reusable-build-iso-anaconda.yml" + - ".github/setup-runner-keys.sh" + - "ghcr.io-ublue-os.pub" - "iso_files/**" workflow_dispatch: inputs: diff --git a/.github/workflows/build-iso-testing.yml b/.github/workflows/build-iso-testing.yml index 6696881..964b2f1 100644 --- a/.github/workflows/build-iso-testing.yml +++ b/.github/workflows/build-iso-testing.yml @@ -8,6 +8,8 @@ on: paths: - ".github/workflows/build-iso-testing.yml" - ".github/workflows/reusable-build-iso-anaconda.yml" + - ".github/setup-runner-keys.sh" + - "ghcr.io-ublue-os.pub" - "iso_files/**" workflow_call: workflow_dispatch: diff --git a/.github/workflows/reusable-build-iso-anaconda.yml b/.github/workflows/reusable-build-iso-anaconda.yml index 870e40e..0d761a5 100644 --- a/.github/workflows/reusable-build-iso-anaconda.yml +++ b/.github/workflows/reusable-build-iso-anaconda.yml @@ -54,6 +54,10 @@ jobs: - name: Maximize build space uses: ublue-os/remove-unwanted-software@695eb75bc387dbcd9685a8e72d23439d8686cba6 # v10 + - name: Configure containers policy for build + run: | + sudo ./.github/setup-runner-keys.sh + - name: Checkout common repo uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: diff --git a/ghcr.io-ublue-os.pub b/ghcr.io-ublue-os.pub new file mode 100644 index 0000000..bd5b192 --- /dev/null +++ b/ghcr.io-ublue-os.pub @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHLRpBfPRYiMl9wb7s6fx47PzzNWu +3zyJgXhWEvxoOgwv9CpwjbvUwR9qHxNMWkJhuGE6cjDA2hpy1I6NbA+24Q== +-----END PUBLIC KEY-----