summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorRutherther <rutherther@ditigal.xyz>2025-12-16 12:26:57 +0100
committerRutherther <rutherther@ditigal.xyz>2025-12-23 09:16:05 +0100
commit2d4ed08662714ea46cfe0b41ca195d1ef845fd1b (patch)
tree3b352c59a9dc01a178db365783f891a63eb71892 /Makefile.am
parentab63e29e90aba4f10d477e76587d687a7bb6a27d (diff)
etc: release: Switch to Guile declaration of artifacts.v1.5.0rc1
This is a rewrite of the bash commands for generation of guix binary tarballs and system images to Guile. I am expecting this will help us significantly with getting the same derivations locally and from Cuirass, instead of relying on images/tarball job specifications and trying to tweak it locally to have the same ones. Implements: #4347, #4348. * etc/teams/release/artifacts-manifest.scm: Make a manifest with release artifacts for all supported systems. * etc/teams/release/artifacts.scm: Collect artifacts for all supported systems into a union with proper names for the release artifacts. * Makefile.am (release): Use time-machine instead of pre-inst-env; Switch to building new artifacts.scm Change-Id: I71a6a27e6f315dd31b91c49e71dff2d09695c0dc Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am55
1 files changed, 13 insertions, 42 deletions
diff --git a/Makefile.am b/Makefile.am
index cca120baa1c..dabceddf2ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1177,49 +1177,20 @@ prepare-release: dist-with-updated-version all
1177 @echo "Now push the resulting commit and run `make release`." 1177 @echo "Now push the resulting commit and run `make release`."
1178 @echo 1178 @echo
1179 1179
1180# Make sure you've ran prepare-release prior to running release and pushed
1181# the commit to Guix. It might be pushed to any branch, such as version-X.Y.Z.
1180release: all 1182release: all
1181# Generate the binary release tarballs. 1183# Build the artifacts for current commit.
1182 rm -f $(BINARY_TARBALLS) 1184# Use time-machine for provenance.
1183 $(MAKE) $(BINARY_TARBALLS) 1185 $(MKDIR_P) "$(releasedir)"
1184 for system in $(SUPPORTED_SYSTEMS) ; do \ 1186 @echo "Building guix inferior for current commit."
1185 mv "guix-binary.$$system.tar.xz" \ 1187 COMMIT="$$(git rev-parse HEAD)" && \
1186 "$(releasedir)/guix-binary-$(PACKAGE_VERSION).$$system.tar.xz" ; \ 1188 GUIX="$$(guix time-machine --commit=$$COMMIT)/bin/guix" && \
1187 done 1189 echo "Building artifacts for current commit: $$COMMIT." && \
1188# Build 'current-guix' to speed things up for the next step. 1190 ARTIFACTS="$$($$GUIX build --no-grafts \
1189 $(top_builddir)/pre-inst-env guix build \ 1191 -f ./etc/teams/release/artifacts.scm)" && \
1190 -e '((@ (gnu packages package-management) current-guix))' \ 1192 echo "Artifacts built! Copying to $(releasedir)" && \
1191 $(call system_flags,$(GUIX_SYSTEM_INSTALLER_SYSTEMS)) \ 1193 cp -f "$$ARTIFACTS"/* "$(releasedir)"
1192 -v1 --no-grafts --fallback
1193# Generate the ISO installation images.
1194 for system in $(GUIX_SYSTEM_INSTALLER_SYSTEMS) ; do \
1195 GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
1196 image=`$(top_builddir)/pre-inst-env \
1197 guix system image -t iso9660 \
1198 --label="GUIX_$${system}_$(VERSION)" \
1199 --system=$$system --fallback \
1200 gnu/system/install.scm` ; \
1201 if [ ! -f "$$image" ] ; then \
1202 echo "failed to produce Guix installation image for $$system" >&2 ; \
1203 exit 1 ; \
1204 fi ; \
1205 cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" ; \
1206 mv "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" \
1207 "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso" ; \
1208 done
1209# Generate the VM images.
1210 for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
1211 GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
1212 image=`$(top_builddir)/pre-inst-env \
1213 guix system image -t qcow2 $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
1214 --save-provenance \
1215 --system=$$system --fallback \
1216 gnu/system/examples/vm-image.tmpl` ; \
1217 if [ ! -f "$$image" ] ; then \
1218 echo "failed to produce Guix VM image for $$system" >&2 ; \
1219 exit 1 ; \
1220 fi ; \
1221 cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.qcow2"; \
1222 done
1223 @echo 1194 @echo
1224 @echo "Congratulations! All the release files are now in $(releasedir)." 1195 @echo "Congratulations! All the release files are now in $(releasedir)."
1225 @echo 1196 @echo