prplos/.gitlab/release.yml
Petr Štetiar a3a23e2145 ci: release: ospv2: move the ext4 rootfs into the bootstack archive
The OSPv2 ext4 rootfs is the payload that update_script.itb flashes over
the U-Boot netboot/recovery flow, i.e. the direct analog of the Freedom
kernel.itb/rootfs.itb already carried in that device's bootstack. Ship it
the same way: fold each step's ext4 image into its per-step bootstack
tarball and drop the standalone upload and asset link.

This also makes the A-Step and B-Step bootstacks self-contained per-step
flash kits instead of the byte-identical archives they were before.

Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-07-07 09:45:27 +00:00

190 lines
12 KiB
YAML

variables:
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic"
upload:
stage: release
image: curlimages/curl:8.4.0
needs:
- job: build test ipq807x prpl security
- job: build test mvebu prpl security
- job: build test x86_64 prpl security
- job: build test qca_ipq95xx prpl cellular security thread
- job: build test mtk_filogic prpl security
- job: build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread
- job: build test airoha_an7581 prpl security
rules:
- if: '$CI_COMMIT_TAG =~ /^prplware-v[0-9]+\.[0-9]+\.[0-9]+.*$/'
script:
- prplware_version=$(echo "$CI_COMMIT_TAG" | sed 's/^prplware-v//')
# mvebu
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/mvebu/cortexa9/prplos-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin \
${PACKAGE_REGISTRY_URL}/turris-omnia/${prplware_version}/prplos-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/mvebu/cortexa9/prplos-mvebu-cortexa9-cznic_turris-omnia-squashfs-sysupgrade.img.gz \
${PACKAGE_REGISTRY_URL}/turris-omnia/${prplware_version}/prplos-mvebu-cortexa9-cznic_turris-omnia-squashfs-sysupgrade.img.gz
# x86
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/x86/64/prplos-x86-64-generic-initramfs-kernel.bin \
${PACKAGE_REGISTRY_URL}/x86-64/${prplware_version}/prplos-x86-64-generic-initramfs-kernel.bin
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/x86/64/prplos-x86-64-generic-squashfs-combined-efi.img \
${PACKAGE_REGISTRY_URL}/x86-64/${prplware_version}/prplos-x86-64-generic-squashfs-combined-efi.img
# ipq807x
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/qualcommax/ipq807x/prplos-qualcommax-ipq807x-prpl_haze-initramfs-uImage.itb \
${PACKAGE_REGISTRY_URL}/prpl-haze/${prplware_version}/prplos-qualcommax-ipq807x-prpl_haze-initramfs-uImage.itb
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/qualcommax/ipq807x/prplos-qualcommax-ipq807x-prpl_haze-squashfs-sysupgrade.bin \
${PACKAGE_REGISTRY_URL}/prpl-haze/${prplware_version}/prplos-qualcommax-ipq807x-prpl_haze-squashfs-sysupgrade.bin
# ospv2 A-Step
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/intel_x86/lgm/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-image.swu \
${PACKAGE_REGISTRY_URL}/gemtek-ospv2/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-image.swu
- |
# bootstack: both DDR variants (u-boot/SPL) + .itb boot script + ext4 rootfs
tar -czf /tmp/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-bootstack.tar.gz \
-C bin/targets/intel_x86/lgm \
uboot-octopus-urx641-4GB-ddr-overlay-fit-p34x-phy-emmc-prpl \
uboot-octopus-urx641-overlay-fit-p34x-phy-emmc-prpl \
prplos-intel_x86-lgm-PRPL_OSP_v2-update_script.itb \
prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-ext4.img
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file /tmp/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-bootstack.tar.gz \
${PACKAGE_REGISTRY_URL}/gemtek-ospv2/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-bootstack.tar.gz
# ospv2 B-Step
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/intel_x86/lgm/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-image.swu \
${PACKAGE_REGISTRY_URL}/gemtek-ospv2-b/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-image.swu
- |
# bootstack: both DDR variants (u-boot/SPL) + .itb boot script + ext4 rootfs
tar -czf /tmp/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-bootstack.tar.gz \
-C bin/targets/intel_x86/lgm \
uboot-octopus-urx641-4GB-ddr-overlay-fit-p34x-phy-emmc-prpl \
uboot-octopus-urx641-overlay-fit-p34x-phy-emmc-prpl \
prplos-intel_x86-lgm-PRPL_OSP_v2-update_script.itb \
prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-ext4.img
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file /tmp/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-bootstack.tar.gz \
${PACKAGE_REGISTRY_URL}/gemtek-ospv2-b/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-bootstack.tar.gz
# qca_ipq95xx (WNC Freedom)
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/ipq95xx/generic/prplos-ipq95xx-generic-prpl_freedom-image.swu \
${PACKAGE_REGISTRY_URL}/wnc-freedom/${prplware_version}/prplos-ipq95xx-generic-prpl_freedom-image.swu
- |
# bootstack: U-Boot + .itb boot script + netboot payload (kernel/rootfs)
tar -C bin/targets/ipq95xx/generic/ \
-czf /tmp/prplos-ipq95xx-generic-prpl_freedom-bootstack.tar.gz \
prplos-ipq95xx-generic-prpl_freedom-u-boot.itb \
prplos-ipq95xx-generic-prpl_freedom-update_script.itb \
prplos-ipq95xx-generic-prpl_freedom-kernel.itb \
prplos-ipq95xx-generic-prpl_freedom-rootfs.itb \
openwrt-ipq9574-generic-u-boot.elfmbn
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file /tmp/prplos-ipq95xx-generic-prpl_freedom-bootstack.tar.gz \
${PACKAGE_REGISTRY_URL}/wnc-freedom/${prplware_version}/prplos-ipq95xx-generic-prpl_freedom-bootstack.tar.gz
# mtk_filogic
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/mediatek/filogic/prplos-mediatek-filogic-arcadyan_mozart-initramfs.itb \
${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-initramfs.itb
- |
tar -C bin/targets/mediatek/filogic/ \
-czf /tmp/prplos-mediatek-filogic-arcadyan_mozart-emmc-bootstack.tar.gz \
prplos-mediatek-filogic-arcadyan_mozart-emmc-bl31-uboot.fip \
prplos-mediatek-filogic-arcadyan_mozart-emmc-gpt.bin \
prplos-mediatek-filogic-arcadyan_mozart-emmc-preloader.bin
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file /tmp/prplos-mediatek-filogic-arcadyan_mozart-emmc-bootstack.tar.gz \
${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-emmc-bootstack.tar.gz
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/mediatek/filogic/prplos-mediatek-filogic-arcadyan_mozart-squashfs-sysupgrade.itb \
${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-squashfs-sysupgrade.itb
# airoha_an7581 (Nokia Valyrian)
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/airoha/an7581/prplos-airoha-an7581-nokia_valyrian-initramfs-kernel.bin \
${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-initramfs-kernel.bin
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file bin/targets/airoha/an7581/prplos-airoha-an7581-nokia_valyrian-squashfs-sysupgrade.bin \
${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-squashfs-sysupgrade.bin
- |
tar -C bin/targets/airoha/an7581/ \
-czf /tmp/prplos-airoha-an7581-nokia_valyrian-bootstack.tar.gz \
prplos-airoha-an7581-nokia_valyrian-bl31-uboot.fip \
prplos-airoha-an7581-nokia_valyrian-preloader.bin
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file /tmp/prplos-airoha-an7581-nokia_valyrian-bootstack.tar.gz \
${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-bootstack.tar.gz
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:v0.16.0
needs: ["upload"]
rules:
- if: '$CI_COMMIT_TAG =~ /^prplware-v[0-9]+\.[0-9]+\.[0-9]+.*$/'
script:
- prplware_version=$(echo "$CI_COMMIT_TAG" | sed 's/^prplware-v//')
- echo "Creating prplWare release $prplware_version"
- |
release-cli create --name "prplWare release $prplware_version" --tag-name $CI_COMMIT_TAG \
--assets-link "{\"name\":\"MaxLinear/Gemtek OSPv2 A-Step SWU update image\",\"url\":\"${PACKAGE_REGISTRY_URL}/gemtek-ospv2/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-image.swu\"}" \
--assets-link "{\"name\":\"MaxLinear/Gemtek OSPv2 A-Step bootstack\",\"url\":\"${PACKAGE_REGISTRY_URL}/gemtek-ospv2/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700-bootstack.tar.gz\"}" \
--assets-link "{\"name\":\"MaxLinear/Gemtek OSPv2 B-Step SWU update image\",\"url\":\"${PACKAGE_REGISTRY_URL}/gemtek-ospv2-b/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-image.swu\"}" \
--assets-link "{\"name\":\"MaxLinear/Gemtek OSPv2 B-Step bootstack\",\"url\":\"${PACKAGE_REGISTRY_URL}/gemtek-ospv2-b/${prplware_version}/prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700-bootstack.tar.gz\"}" \
--assets-link "{\"name\":\"MediaTek/Arcadyan Mozart bootstack\",\"url\":\"${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-emmc-bootstack.tar.gz\"}" \
--assets-link "{\"name\":\"MediaTek/Arcadyan Mozart sysupgrade\",\"url\":\"${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-squashfs-sysupgrade.itb\"}" \
--assets-link "{\"name\":\"MediaTek/Arcadyan Mozart initramfs\",\"url\":\"${PACKAGE_REGISTRY_URL}/arcadyan-mozart/${prplware_version}/prplos-mediatek-filogic-arcadyan_mozart-initramfs.itb\"}" \
--assets-link "{\"name\":\"prpl Haze sysupgrade\",\"url\":\"${PACKAGE_REGISTRY_URL}/prpl-haze/${prplware_version}/prplos-qualcommax-ipq807x-prpl_haze-squashfs-sysupgrade.bin\"}" \
--assets-link "{\"name\":\"prpl Haze initramfs\",\"url\":\"${PACKAGE_REGISTRY_URL}/prpl-haze/${prplware_version}/prplos-qualcommax-ipq807x-prpl_haze-initramfs-uImage.itb\"}" \
--assets-link "{\"name\":\"Turris Omnia sysupgrade\",\"url\":\"${PACKAGE_REGISTRY_URL}/turris-omnia/${prplware_version}/prplos-mvebu-cortexa9-cznic_turris-omnia-squashfs-sysupgrade.img.gz\"}" \
--assets-link "{\"name\":\"Turris Omnia initramfs\",\"url\":\"${PACKAGE_REGISTRY_URL}/turris-omnia/${prplware_version}/prplos-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin\"}" \
--assets-link "{\"name\":\"Qualcomm/WNC Freedom SWU update image\",\"url\":\"${PACKAGE_REGISTRY_URL}/wnc-freedom/${prplware_version}/prplos-ipq95xx-generic-prpl_freedom-image.swu\"}" \
--assets-link "{\"name\":\"Qualcomm/WNC Freedom bootstack\",\"url\":\"${PACKAGE_REGISTRY_URL}/wnc-freedom/${prplware_version}/prplos-ipq95xx-generic-prpl_freedom-bootstack.tar.gz\"}" \
--assets-link "{\"name\":\"Airoha/Nokia Valyrian sysupgrade\",\"url\":\"${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-squashfs-sysupgrade.bin\"}" \
--assets-link "{\"name\":\"Airoha/Nokia Valyrian initramfs\",\"url\":\"${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-initramfs-kernel.bin\"}" \
--assets-link "{\"name\":\"Airoha/Nokia Valyrian bootstack\",\"url\":\"${PACKAGE_REGISTRY_URL}/nokia-valyrian/${prplware_version}/prplos-airoha-an7581-nokia_valyrian-bootstack.tar.gz\"}" \
--assets-link "{\"name\":\"x86/64 sysupgrade\",\"url\":\"${PACKAGE_REGISTRY_URL}/x86-64/${prplware_version}/prplos-x86-64-generic-squashfs-combined-efi.img\"}" \
--assets-link "{\"name\":\"x86/64 initramfs\",\"url\":\"${PACKAGE_REGISTRY_URL}/x86-64/${prplware_version}/prplos-x86-64-generic-initramfs-kernel.bin\"}"