| |
@@ -14,11 +14,25 @@
|
| |
[kinoite-nightly]="Kinoite"
|
| |
[kinoite-beta]="Kinoite"
|
| |
[kinoite-mobile]="Kinoite"
|
| |
- [sericea]="Sericea"
|
| |
- [onyx]="Onyx"
|
| |
- [vauxite]="Vauxite"
|
| |
- [lazurite]="Lazurite"
|
| |
- [base]="Base"
|
| |
+ [sway-atomic]="Sway Atomic"
|
| |
+ [budgie-atomic]="Budgie Atomic"
|
| |
+ [xfce-atomic]="XFCE Atomic"
|
| |
+ [lxqt-atomic]="LXQt Atomic"
|
| |
+ [base-atomic]="Base Atomic"
|
| |
+ )'
|
| |
+
|
| |
+ # Legacy names, used to keep some references stable
|
| |
+ legacy_names := '(
|
| |
+ [silverblue]="silverblue"
|
| |
+ [kinoite]="kinoite"
|
| |
+ [kinoite-nightly]="kinoite-nightly"
|
| |
+ [kinoite-beta]="kinoite-beta"
|
| |
+ [kinoite-mobile]="kinoite-mobile"
|
| |
+ [sway-atomic]="sericea"
|
| |
+ [budgie-atomic]="onyx"
|
| |
+ [xfce-atomic]="vauxite"
|
| |
+ [lxqt-atomic]="lazurite"
|
| |
+ [base-atomic]="base-atomic"
|
| |
)'
|
| |
|
| |
# subset of the map from https://pagure.io/pungi-fedora/blob/main/f/general.conf
|
| |
@@ -28,11 +42,11 @@
|
| |
[kinoite-nightly]="Kin"
|
| |
[kinoite-beta]="Kin"
|
| |
[kinoite-mobile]="Kin"
|
| |
- [sericea]="Src"
|
| |
- [onyx]="Onyx"
|
| |
- [vauxite]="Vxt"
|
| |
- [lazurite]="Lzr"
|
| |
- [base]="Base"
|
| |
+ [sway-atomic]="SwA"
|
| |
+ [budgie-atomic]="BdA"
|
| |
+ [xfce-atomic]="XfA"
|
| |
+ [lxqt-atomic]="LxA"
|
| |
+ [base-atomic]="BsA"
|
| |
)'
|
| |
|
| |
# Default is to only validate the manifests
|
| |
@@ -52,7 +66,7 @@
|
| |
fi
|
| |
|
| |
default_variant={{default_variant}}
|
| |
- version="$(rpm-ostree compose tree --print-only --repo=repo fedora-${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
./comps-sync.py --save fedora-comps/comps-f${version}.xml.in
|
| |
|
| |
# Sync the manifests with the content of the comps groups
|
| |
@@ -70,7 +84,7 @@
|
| |
fi
|
| |
|
| |
default_variant={{default_variant}}
|
| |
- version="$(rpm-ostree compose tree --print-only --repo=repo fedora-${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
./comps-sync.py --save fedora-comps/comps-f${version}.xml.in
|
| |
|
| |
# Check if the manifests are in sync with the content of the comps groups
|
| |
@@ -88,7 +102,7 @@
|
| |
fi
|
| |
|
| |
default_variant={{default_variant}}
|
| |
- version="$(rpm-ostree compose tree --print-only --repo=repo fedora-${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${default_variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
./comps-sync.py fedora-comps/comps-f${version}.xml.in
|
| |
|
| |
# Output the processed manifest for a given variant (defaults to Silverblue)
|
| |
@@ -104,7 +118,7 @@
|
| |
exit 1
|
| |
fi
|
| |
|
| |
- rpm-ostree compose tree --print-only --repo=repo fedora-{{variant}}.yaml
|
| |
+ rpm-ostree compose tree --print-only --repo=repo {{variant}}.yaml
|
| |
|
| |
# Perform dependency resolution for a given variant (defaults to Silverblue)
|
| |
compose-dry-run variant=default_variant:
|
| |
@@ -118,7 +132,7 @@
|
| |
popd > /dev/null || exit 1
|
| |
fi
|
| |
|
| |
- rpm-ostree compose tree --unified-core --repo=repo --dry-run fedora-{{variant}}.yaml
|
| |
+ rpm-ostree compose tree --unified-core --repo=repo --dry-run {{variant}}.yaml
|
| |
|
| |
# Alias/shortcut for compose-image command
|
| |
compose variant=default_variant: (compose-image variant)
|
| |
@@ -151,7 +165,7 @@
|
| |
timestamp="$(date --iso-8601=sec)"
|
| |
echo "${buildid}" > .buildid
|
| |
|
| |
- version="$(rpm-ostree compose tree --print-only --repo=repo fedora-${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
echo "Composing ${variant_pretty} ${version}.${buildid} ..."
|
| |
|
| |
ARGS="--repo=repo --cachedir=cache"
|
| |
@@ -166,7 +180,7 @@
|
| |
|
| |
${CMD} compose tree ${ARGS} \
|
| |
--add-metadata-string="version=${variant_pretty} ${version}.${buildid}" \
|
| |
- "fedora-${variant}.yaml" \
|
| |
+ "${variant}-ostree.yaml" \
|
| |
|& tee "logs/${variant}_${version}_${buildid}.${timestamp}.log"
|
| |
|
| |
if [[ ${EUID} -ne 0 ]]; then
|
| |
@@ -203,7 +217,7 @@
|
| |
timestamp="$(date --iso-8601=sec)"
|
| |
echo "${buildid}" > .buildid
|
| |
|
| |
- version="$(rpm-ostree compose tree --print-only --repo=repo fedora-${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
echo "Composing ${variant_pretty} ${version}.${buildid} ..."
|
| |
|
| |
ARGS="--cachedir=cache --initialize"
|
| |
@@ -218,8 +232,8 @@
|
| |
|
| |
${CMD} compose image ${ARGS} \
|
| |
--label="quay.expires-after=4w" \
|
| |
- "fedora-${variant}.yaml" \
|
| |
- "fedora-${variant}.ociarchive"
|
| |
+ "${variant}.yaml" \
|
| |
+ "${variant}.ociarchive"
|
| |
|
| |
# Clean up everything
|
| |
clean-all:
|
| |
@@ -270,7 +284,7 @@
|
| |
popd > /dev/null || exit 1
|
| |
fi
|
| |
|
| |
- version_number="$(rpm-ostree compose tree --print-only --repo=repo fedora-${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version_number="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
if [[ "$(git rev-parse --abbrev-ref HEAD)" == "main" ]] || [[ -f "fedora-rawhide.repo" ]]; then
|
| |
version_pretty="Rawhide"
|
| |
version="rawhide"
|
| |
@@ -342,14 +356,22 @@
|
| |
#!/bin/bash
|
| |
set -euxo pipefail
|
| |
|
| |
- declare -A pretty_names={{pretty_names}}
|
| |
variant={{variant}}
|
| |
+
|
| |
+ declare -A pretty_names={{pretty_names}}
|
| |
variant_pretty=${pretty_names[$variant]-}
|
| |
if [[ -z $variant_pretty ]]; then
|
| |
echo "Unknown variant"
|
| |
exit 1
|
| |
fi
|
| |
|
| |
+ declare -A legacy_names={{legacy_names}}
|
| |
+ variant_legacy=${legacy_names[$variant]-}
|
| |
+ if [[ -z $variant_legacy ]]; then
|
| |
+ echo "Unknown variant (legacy)"
|
| |
+ exit 1
|
| |
+ fi
|
| |
+
|
| |
if [[ -z ${CI_REGISTRY_USER+x} ]] || [[ -z ${CI_REGISTRY_PASSWORD+x} ]]; then
|
| |
echo "Skipping artifact archiving: Not in CI"
|
| |
exit 0
|
| |
@@ -363,10 +385,9 @@
|
| |
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 fedora-${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
+ version="$(rpm-ostree compose tree --print-only --repo=repo ${variant}.yaml | jq -r '."mutate-os-release"')"
|
| |
fi
|
| |
|
| |
- image="quay.io/fedora-ostree-desktops/${variant}"
|
| |
buildid=""
|
| |
if [[ -f ".buildid" ]]; then
|
| |
buildid="$(< .buildid)"
|
| |
@@ -383,11 +404,27 @@
|
| |
fi
|
| |
|
| |
skopeo login --username "${CI_REGISTRY_USER}" --password "${CI_REGISTRY_PASSWORD}" quay.io
|
| |
+
|
| |
+ # Copy to the new names
|
| |
+ image="quay.io/fedora-ostree-desktops/${variant}"
|
| |
+
|
| |
# Copy fully versioned tag (major version, build date/id, git commit)
|
| |
- skopeo copy --retry-times 3 "oci-archive:fedora-${variant}.ociarchive" "docker://${image}:${version}.${buildid}.${git_commit}"
|
| |
+ skopeo copy --retry-times 3 "oci-archive:${variant}.ociarchive" "docker://${image}:${version}.${buildid}.${git_commit}"
|
| |
+
|
| |
# Update "un-versioned" tag (only major version)
|
| |
skopeo copy --retry-times 3 "docker://${image}:${version}.${buildid}.${git_commit}" "docker://${image}:${version}"
|
| |
if [[ "${variant}" == "kinoite-nightly" ]]; then
|
| |
# Update latest tag for kinoite-nightly only
|
| |
skopeo copy --retry-times 3 "docker://${image}:${version}.${buildid}.${git_commit}" "docker://${image}:latest"
|
| |
fi
|
| |
+
|
| |
+ # Copy to legacy names if needed
|
| |
+ if [[ "${variant}" != "${variant_legacy}" ]]; then
|
| |
+ image="quay.io/fedora-ostree-desktops/${variant_legacy}"
|
| |
+
|
| |
+ # Copy fully versioned tag (major version, build date/id, git commit)
|
| |
+ skopeo copy --retry-times 3 "oci-archive:${variant}.ociarchive" "docker://${image}:${version}.${buildid}.${git_commit}"
|
| |
+
|
| |
+ # Update "un-versioned" tag (only major version)
|
| |
+ skopeo copy --retry-times 3 "docker://${image}:${version}.${buildid}.${git_commit}" "docker://${image}:${version}"
|
| |
+ fi
|
| |
*: Include DNF5 (Kinoite temporarily excluded)
Stop excluding DNF5 and add it to all Atomic Desktops.
See: https://fedoraproject.org/wiki/Changes/DNFAndBootcInImageModeFedora
See: https://fedoraproject.org/wiki/Changes/SwitchToDnf5
See: https://pagure.io/fedora-comps/pull-request/960
Temporarily excluded from Kinoite.
See: https://pagure.io/fedora-kde/SIG/issue/519