From 827f3a02e9fadda649a66ea452354ab261fc10cb Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 23 Feb 2022 22:29:57 +0100 Subject: [PATCH 1/4] ci(unstable): add unstable release - only if tag has an "unstable" word --- .gitlab-ci.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e259f049f..2d23e13bbe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -155,6 +155,8 @@ tests buildroot patches: - | if echo "${CI_COMMIT_TAG:-""}" | grep -qi "beta";then sed -i "s/^updates.type=.*/updates.type=beta/g" package/recalbox-system/*/recalbox.conf + elif echo "${CI_COMMIT_TAG:-""}" | grep -qi "unstable";then + sed -i "s/^updates.type=.*/updates.type=unstable/g" package/recalbox-system/*/recalbox.conf fi # Build - docker build -t "recalbox-${ARCH}" . @@ -318,7 +320,7 @@ release prod: refs: - tags variables: - - $CI_COMMIT_TAG !~ /beta/i + - $CI_COMMIT_TAG !~ /beta/i && $CI_COMMIT_TAG !~ /unstable/i when: manual variables: DEPLOY_TYPE: prod @@ -349,16 +351,19 @@ release public beta: environment: name: beta/${CI_COMMIT_REF_SLUG} -release nightly: +release public unstable: <<: *release_definition only: - - schedules + refs: + - tags + variables: + - $CI_COMMIT_TAG =~ /unstable/i + when: manual variables: DEPLOY_TYPE: review - BUCKET: recalbox-archive-nightly + BUCKET: recalbox-archive-unstable environment: - name: nightly/${CI_COMMIT_REF_SLUG} - + name: unstable/${CI_COMMIT_REF_SLUG} release branch: <<: *release_definition -- GitLab From a49d096e74d76c14968ea72b1f3c84bf1a9c5461 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Wed, 23 Feb 2022 22:33:26 +0100 Subject: [PATCH 2/4] ci(release): add full release note on servers --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d23e13bbe..c88d209a47 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -148,6 +148,7 @@ tests buildroot patches: - cp "${YOUTUBE_API_KEYS}" "./api_keys.json" # Release Note generation - echo -e "Recalbox ${RECALBOX_VERSION}\n" > /tmp/RELEASE-NOTES.md + - cp RELEASE-NOTES.md RELEASE-NOTES-FULL.md - awk '/^## Version/ { flag=!flag; count+=1; next } flag && count < 2 {print}' RELEASE-NOTES.md >> /tmp/RELEASE-NOTES.md - mv /tmp/RELEASE-NOTES.md RELEASE-NOTES.md - cat RELEASE-NOTES.md @@ -171,6 +172,7 @@ tests buildroot patches: - echo "${RECALBOX_VERSION}" >> "${DIST_DIR}/recalbox.version" - cp ${WORKDIR}/CHANGELOG.md "${DIST_DIR}/recalbox.changelog" - cp ${WORKDIR}/RELEASE-NOTES.md "${DIST_DIR}/recalbox.releasenotes" + - cp ${WORKDIR}/RELEASE-NOTES-FULL.md "${DIST_DIR}/RELEASE-NOTES-FULL.md" - uploadFolderToBucket "${AWS_ACCESS_KEY_ID}" "${AWS_SECRET_ACCESS_TOKEN}" "recalbox-builds-artifacts" "dist" "${CI_PIPELINE_ID}" - rm -rf "${DIST_DIR}" "${OUTPUTDIR}/images/recalbox" after_script: -- GitLab From e51e942a08e29780575f4573e1f12f01d5c5ed34 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Thu, 24 Feb 2022 10:29:17 +0100 Subject: [PATCH 3/4] chore(ci): avoid generation of boot.tar.xz unecessary files --- board/recalbox/copy-recalbox-archives.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/board/recalbox/copy-recalbox-archives.sh b/board/recalbox/copy-recalbox-archives.sh index ecb9e90e33..d591b82d21 100755 --- a/board/recalbox/copy-recalbox-archives.sh +++ b/board/recalbox/copy-recalbox-archives.sh @@ -93,7 +93,7 @@ fi mkdir -p "${RECALBOX_BINARIES_DIR}" -# XU4, RPI0, RPI1, RPI2 or RPI3 +# XU4, RPI1, RPI2 or RPI3 RECALBOX_TARGET=$(grep -E "^BR2_PACKAGE_RECALBOX_TARGET_[A-Z_0-9]*=y$" "${BR2_CONFIG}" | sed -e s+'^BR2_PACKAGE_RECALBOX_TARGET_\([A-Z_0-9]*\)=y$'+'\1'+) RECALBOX_TARGET_LOWER=$(echo ${RECALBOX_TARGET} | tr '[:upper:]' '[:lower:]') @@ -103,7 +103,7 @@ RECALBOX_IMG="${RECALBOX_BINARIES_DIR}/recalbox-${RECALBOX_TARGET_LOWER}.img" echo -e "\n----- Generating images/recalbox files -----\n" case "${RECALBOX_TARGET}" in - RPI0|RPI1|RPI3|RPI4|RPI4_64|RPIZERO2LEGACY|RPIZERO2) + RPI1|RPI3|RPI4|RPI4_64|RPIZERO2LEGACY|RPIZERO2) # /boot echo "generating boot" cp -f "${BINARIES_DIR}/"*.dtb "${BINARIES_DIR}/rpi-firmware" @@ -164,9 +164,9 @@ case "${RECALBOX_TARGET}" in generate_boot_file_list "${BINARIES_DIR}/odroidxu4-firmware/" | \ grep -v -E '^(boot.lst|boot.ini|config.ini|recalbox-boot.conf)$' >"${BINARIES_DIR}/boot.lst" - # boot.tar.xz - tar -C "${BINARIES_DIR}/odroidxu4-firmware" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || - { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } + # boot.tar.xz (unecessary) + #tar -C "${BINARIES_DIR}/odroidxu4-firmware" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || + # { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } # recalbox.img GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" @@ -200,9 +200,9 @@ case "${RECALBOX_TARGET}" in generate_boot_file_list "${BINARIES_DIR}/odroidgo2-firmware/" | \ grep -v -E '^(boot.lst|recalbox-boot.conf)$' >"${BINARIES_DIR}/boot.lst" - # boot.tar.xz - tar -C "${BINARIES_DIR}/odroidgo2-firmware" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || - { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } + # boot.tar.xz (unecessary) + # tar -C "${BINARIES_DIR}/odroidgo2-firmware" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || + # { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } # recalbox.img GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" @@ -236,9 +236,9 @@ case "${RECALBOX_TARGET}" in generate_boot_file_list "${BINARIES_DIR}/pc-boot/" | \ grep -v -E '^(boot.lst|recalbox-boot.conf)$' >"${BINARIES_DIR}/pc-boot/boot.lst" - # boot.tar.xz - tar -C "${BINARIES_DIR}/pc-boot" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || - { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } + # boot.tar.xz (unecessary) + #tar -C "${BINARIES_DIR}/pc-boot" -cJf "${RECALBOX_BINARIES_DIR}/boot.tar.xz" . || + # { echo "ERROR : unable to create boot.tar.xz" && exit 1 ; } # recalbox.img cp "${HOST_DIR}/usr/lib/grub/i386-pc/boot.img" "${BINARIES_DIR}/" || exit 1 -- GitLab From 38505381f2f9a4385c8bb779a4b049cd963904e9 Mon Sep 17 00:00:00 2001 From: digitalLumberjack Date: Thu, 24 Feb 2022 10:29:46 +0100 Subject: [PATCH 4/4] chore(ci): make the build fail when image compression fail --- board/recalbox/copy-recalbox-archives.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/recalbox/copy-recalbox-archives.sh b/board/recalbox/copy-recalbox-archives.sh index d591b82d21..b49e7de45a 100755 --- a/board/recalbox/copy-recalbox-archives.sh +++ b/board/recalbox/copy-recalbox-archives.sh @@ -263,7 +263,7 @@ esac # Compress the generated .img if mv -f ${RECALBOX_BINARIES_DIR}/recalbox.img ${RECALBOX_IMG} ; then echo "Compressing ${RECALBOX_IMG} ... " - xz -9 -e --threads=0 "${RECALBOX_IMG}" + xz -9 -e --threads=0 "${RECALBOX_IMG}" || exit 1 else echo "Couldn't move recalbox.img or compress it" exit 1 -- GitLab