mirror of
https://pagure.io/workstation-ostree-config.git
synced 2026-11-03 21:49:45 -09:00
Backport justfile changes from main branch
This commit is contained in:
parent
b25197e853
commit
e298827400
1 changed files with 72 additions and 11 deletions
83
justfile
83
justfile
|
|
@ -161,7 +161,7 @@ compose-legacy variant=default_variant:
|
|||
mkdir -p repo cache logs
|
||||
if [[ ! -f "repo/config" ]]; then
|
||||
pushd repo > /dev/null || exit 1
|
||||
ostree init --repo . --mode=bare-user
|
||||
ostree init --repo . --mode=archive-z2
|
||||
popd > /dev/null || exit 1
|
||||
fi
|
||||
# Set option to reduce fsync for transient builds
|
||||
|
|
@ -180,7 +180,7 @@ compose-legacy variant=default_variant:
|
|||
"--unified-core"
|
||||
)
|
||||
if [[ {{force_nocache}} == "true" ]]; then
|
||||
ARGS+=(" --force-nocache")
|
||||
ARGS+=("--force-nocache")
|
||||
fi
|
||||
CMD="rpm-ostree"
|
||||
if [[ ${EUID} -ne 0 ]]; then
|
||||
|
|
@ -213,20 +213,13 @@ compose-image variant=default_variant:
|
|||
|
||||
just validate > /dev/null || (echo "Failed manifest validation" && exit 1)
|
||||
|
||||
mkdir -p repo cache
|
||||
if [[ ! -f "repo/config" ]]; then
|
||||
pushd repo > /dev/null || exit 1
|
||||
ostree init --repo . --mode=bare-user
|
||||
popd > /dev/null || exit 1
|
||||
fi
|
||||
# Set option to reduce fsync for transient builds
|
||||
ostree --repo=repo config set 'core.fsync' 'false'
|
||||
mkdir -p cache
|
||||
|
||||
buildid="$(date '+%Y%m%d.0')"
|
||||
timestamp="$(date --iso-8601=sec)"
|
||||
echo "${buildid}" > .buildid
|
||||
|
||||
version="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
||||
version="$(rpm-ostree compose tree --print-only ${variant}.yaml | jq -r '."mutate-os-release"')"
|
||||
echo "Composing ${variant_pretty} ${version}.${buildid} ..."
|
||||
|
||||
ARGS=(
|
||||
|
|
@ -443,6 +436,74 @@ upload-container variant=default_variant arch=default_arch:
|
|||
# Cleanup private key
|
||||
rm private.key.b64 private.key
|
||||
|
||||
# Upload a container to an anonymous registry. Useful for local builds
|
||||
upload-container-local variant=default_variant arch=default_arch:
|
||||
#!/bin/bash
|
||||
set -euxo pipefail
|
||||
|
||||
{{retry_function}}
|
||||
|
||||
variant={{variant}}
|
||||
arch={{arch}}
|
||||
|
||||
declare -A pretty_names={{pretty_names}}
|
||||
variant_pretty=${pretty_names[$variant]-}
|
||||
if [[ -z $variant_pretty ]]; then
|
||||
echo "Unknown variant"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z ${REGISTRY+x} ]] || [[ -z ${RELEASE_REPO+x} ]]; then
|
||||
echo "Skipping: No REGISTRY or RELEASE_REPO set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
buildid=""
|
||||
if [[ -f ".buildid" ]]; then
|
||||
buildid="$(< .buildid)"
|
||||
else
|
||||
echo "Skipping: No '.buildid' file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
version=""
|
||||
if [[ "$(git rev-parse --abbrev-ref HEAD)" == "main" ]] || [[ -f "fedora-rawhide.repo" ]]; then
|
||||
version="rawhide"
|
||||
else
|
||||
version="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
||||
fi
|
||||
|
||||
if [[ -n ${CI_REGISTRY_USER+x} ]] || [[ -n ${CI_REGISTRY_PASSWORD+x} ]]; then
|
||||
# Login to the registry
|
||||
retry 5 60 skopeo login --username "${CI_REGISTRY_USER}" --password "${CI_REGISTRY_PASSWORD}" "${REGISTRY}"
|
||||
fi
|
||||
|
||||
image="${REGISTRY}/${RELEASE_REPO}/${variant}"
|
||||
|
||||
# Only append arch suffix if requested
|
||||
suffix=""
|
||||
if [[ ${arch} != "default" ]]; then
|
||||
suffix="-${arch}"
|
||||
fi
|
||||
|
||||
SKOPEO_ARGS=(
|
||||
"--retry-times" "3"
|
||||
"--dest-tls-verify=false"
|
||||
)
|
||||
|
||||
# Support for the zstd:chunked format is not ready yet
|
||||
SKOPEO_ARGS+=("--dest-compress-format")
|
||||
if [[ ${version} == "rawhide" ]] || [[ ${version} == "43" ]]; then
|
||||
SKOPEO_ARGS+=("zstd")
|
||||
else
|
||||
SKOPEO_ARGS+=("gzip")
|
||||
fi
|
||||
|
||||
# Push fully versioned tag (major version, build date/id, arch)
|
||||
retry 5 60 skopeo copy "${SKOPEO_ARGS[@]}" \
|
||||
"oci-archive:${variant}.ociarchive" \
|
||||
"docker://${image}:${version}.${buildid}${suffix}"
|
||||
|
||||
# Create a multi-arch manifest for a given variant, push it to a registry and sign it
|
||||
multi-arch-manifest variant=default_variant:
|
||||
#!/bin/bash
|
||||
|
|
|
|||
Loading…
Reference in a new issue