diff --git a/boards/.c31.yml b/boards/.c31.yml index 79655158172fe95166cb579eeb39d30066c146d8..d01d0dbb74795e072b8da1a182a0f4e50614f947 100644 --- a/boards/.c31.yml +++ b/boards/.c31.yml @@ -12,6 +12,7 @@ build-edgehog-c31: DEFCONFIG_FILE: seco_sbc_c31_edgehog RECIPE_NAME: seco-image-edgehog IMAGE_NAME: edgehog-things-image + KERNEL: 4-19-111 deploy-edgehog-c31: extends: .deploy diff --git a/manifest-pipeline-yocto.yml b/manifest-pipeline-yocto.yml index c90c4c7b3fd8e100ddaa8a62f6a2dea4216b47fb..217854b37a72e9ad50365e0cabc36786b20e6de3 100644 --- a/manifest-pipeline-yocto.yml +++ b/manifest-pipeline-yocto.yml @@ -252,11 +252,11 @@ retrigger: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG script: - - BASE_DIRECTORY=$PWD - echo "Deploying packages..." - echo "This is the board for which the build has been performed... ${BOARD}" - echo "This is the recipe name associated to that build... ${RECIPE_NAME}" - echo "This is the image name will be assigned to software artifacts... ${IMAGE_NAME}" + - BASE_DIRECTORY=$PWD - ART_PATH=$(cat pathname.txt) - DEPLOY_DATE=$(date +%Y%m%d) - DEPLOY_PATH="${TAG_NAME}/week_$(date +%U)" @@ -268,194 +268,14 @@ retrigger: AZURE_CONTAINER_NAME="${AZURE_PUBLIC_CONTAINER_NAME}" AZURE_PATH="${AZURE_PATH}/edgehog" fi - - | - uboot_filename="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" - uboot_filename_latest="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" - kernel_filename="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" - kernel_filename_latest="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" - filesystem_name="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.bz2" - filesystem_name_latest="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.bz2" - image_name="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE"."$IMAGE_EXTENSION"" - image_name_latest="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest."$IMAGE_EXTENSION"" - bmap_name="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".rootfs.wic.bmap" - bmap_name_latest="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.rootfs.wic.bmap" - bundle_filename="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".raucb" - bundle_filename_latest="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_latest.raucb" - - if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then - - echo "##################################################################" - echo "####################### BUNDLE FILE ############################" - echo "##################################################################" - - #Copy the bundle file and rename it - find $ART_PATH -iname *"$MACHINE.raucb" -exec cp -L {} $BASE_DIRECTORY/ \; - mv *raucb $BASE_DIRECTORY/$bundle_filename - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$bundle_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$bundle_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename_latest \ - --overwrite - fi - fi - - case none in - *${UBOOT_FILE}*) echo "Not deploying U-Boot for this board since not present";; - * ) - echo "##################################################################" - echo "######################## UBOOT #################################" - echo "##################################################################" - - #Compress the uboot package and create a tar.gz file - echo $ART_PATH - ls -la $ART_PATH - find $ART_PATH -iname $UBOOT_FILE -exec cp -L {} $BASE_DIRECTORY/ \; - echo "${UBOOT_FILE}" - ls -la - tar -czvf $BASE_DIRECTORY/$uboot_filename -C $BASE_DIRECTORY $UBOOT_FILE - ls -la - - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$uboot_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$uboot_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename_latest \ - --overwrite - fi - echo "Finishing U-Boot upload";; - esac - - case none in - *${KERNEL_FILE}*) echo "Not deploying Kernel for this board since not present";; - * ) - echo "##################################################################" - echo "######################## KERNEL ################################" - echo "##################################################################" - - kernel_dir="$BASE_DIRECTORY/seco-kernel-$BOARD-$PROCESSOR" - mkdir -p $kernel_dir/boot $kernel_dir/lib - - #Find all the needed kernel packages and copy them inside the proper folders - find $BASE_DIRECTORY/$ART_PATH -iname $KERNEL_FILE \ - -exec cp -L {} $kernel_dir/boot \; - find $BASE_DIRECTORY/$ART_PATH -maxdepth 2 -iname *.dtb \ - -exec cp -L {} $kernel_dir/boot \; - find $BASE_DIRECTORY/$ART_PATH -iname *.dtbo \ - -exec cp -L {} $kernel_dir/boot \; - find $BASE_DIRECTORY/$ART_PATH -iname *fw*.bin \ - -exec cp -L {} $kernel_dir/boot \; - find $BASE_DIRECTORY/$ART_PATH -iname modules-seco-*.tgz \ - -exec cp -L {} $BASE_DIRECTORY/temp_mod.tgz \; - tar -xf $BASE_DIRECTORY/temp_mod.tgz -C $kernel_dir - rm $BASE_DIRECTORY/temp_mod.tgz - - #Compress the kernel package and create a tar.gz file - tar -czvf $BASE_DIRECTORY/$kernel_filename -C $kernel_dir boot lib - rm -rf $kernel_dir - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$kernel_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$kernel_filename \ - --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename_latest \ - --overwrite - fi - echo "Finishing Kernel upload";; - esac - - echo "##################################################################" - echo "###################### FILESYSTEM ##############################" - echo "##################################################################" - find $BASE_DIRECTORY/$ART_PATH -iname *."$FS_EXTENSION" \ - -exec cp -L {} $BASE_DIRECTORY/filesystemTMP.tar.bz2 \; - mv filesystemTMP.tar.bz2 $BASE_DIRECTORY/$filesystem_name - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$filesystem_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$filesystem_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name_latest \ - --overwrite - fi - - echo "################################################################" - echo "####################### BMAP IMAGE ###########################" - echo "################################################################" - - #Copy the BMAP .wic image and rename it - find $BASE_DIRECTORY/$ART_PATH \ - -iname *rootfs."$IMAGE_EXTENSION" \ - -exec cp -L {} . \; - mv *rootfs."$IMAGE_EXTENSION" $BASE_DIRECTORY/$image_name - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$image_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$image_name \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$image_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$image_name_latest \ - --overwrite - fi - - echo "################################################################" - echo "####################### BMAP FILE ############################" - echo "################################################################" - - #Copy the bmap files and rename it - find $ART_PATH -iname *rootfs.wic.bmap -exec cp -L {} $BASE_DIRECTORY/ \; - mv *rootfs.wic.bmap $BASE_DIRECTORY/$bmap_name - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$bmap_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name \ - --overwrite - - if [ ! -n "$CI_COMMIT_TAG" ]; then - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file $BASE_DIRECTORY/$bmap_name \ - --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name_latest \ - --overwrite - fi + - sh scripts/artifacts_name.sh $TAG_NAME \ + $DEPLOY_DATE + - sh scripts/deploy_artifacts.sh $BASE_DIRECTORY \ + $ART_PATH \ + $DEPLOY_PATH \ + $AZURE_STORAGE_SAS_TOKEN \ + $AZURE_CONTAINER_NAME \ + $AZURE_PATH after_script: - | @@ -485,61 +305,13 @@ retrigger: echo ""$BOARD"_"$IMAGE_NAME" URLs" >> Link_report_"$BOARD"_"$IMAGE_NAME".txt echo "##################################################################" >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - uboot_filename="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" - uboot_filename_latest="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" - kernel_filename="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" - kernel_filename_latest="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" - filesystem_name="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.bz2" - filesystem_name_latest="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.bz2" - image_name="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE"."$IMAGE_EXTENSION"" - image_name_latest="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest."$IMAGE_EXTENSION"" - bmap_name="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".rootfs.wic.bmap" - bmap_name_latest="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.rootfs.wic.bmap" - bundle_filename="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".raucb" - bundle_filename_latest="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_latest.raucb" - - if [ "$CI_JOB_STATUS" == "success" ]; then - if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - fi - case none in - *${UBOOT_FILE}*) echo "Not deployed U-Boot for this board since not present";; - * ) - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt;; - esac - - case none in - *${KERNEL_FILE}*) echo "Not deployed Kernel for this board since not present";; - * ) - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt;; - esac - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$image_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - - if [ ! -n "$CI_COMMIT_TAG" ]; then - if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - fi - - case none in - *${UBOOT_FILE}*) echo "Not deployed U-Boot for this board since not present";; - * ) - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt;; - esac - - case none in - *${KERNEL_FILE}*) echo "Not deployed Kernel for this board since not present";; - * ) - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt;; - esac - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$image_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - fi - else - echo -e "JOBS FAILED" >> Link_report_"$BOARD"_"$IMAGE_NAME".txt - fi + - sh scripts/artifacts_name.sh $TAG_NAME \ + $DEPLOY_DATE + - sh scripts/generate_report.sh $DEPLOY_PATH \ + $AZURE_STORAGE_SAS_TOKEN \ + $AZURE_CONTAINER_NAME \ + $AZURE_PATH + allow_failure: true artifacts: paths: @@ -583,74 +355,26 @@ notify: rules: - *schedule_tag_rule script: - - | - echo -e "The job results for all boards are listed below (also available by clicking on the **Job Report** button)." >> Job_message.txt - echo -e "The paths to all packages can be accessed by clicking on the **Link Report** button." >> Job_message.txt - echo -e "The changelog can be accessed by clicking on the **Changelog** button." >> Job_message.txt - echo -e "*We kindly ask developers to check job results so that in case of failures a fix to eventual bugs can be promptly made.*" >> Job_message.txt - - AZURE_PATH="edgehog/reports" - if [ -n "$CI_COMMIT_TAG" ]; then - tag=${CI_COMMIT_TAG} - AZURE_STORAGE_SAS_TOKEN="${AZURE_STORAGE_PUBLIC_SAS_TOKEN}" - AZURE_CONTAINER_NAME="${AZURE_PUBLIC_CONTAINER_NAME}" - else - tag=$(date +%Y%m%d) - fi - - cat Job_message.txt Job_message_*.txt > Job_message_edgehog_${tag}.txt - cat Job_report_*.txt > Job_report_edgehog_${tag}.txt - cat Link_report_*.txt > Link_report_edgehog_${tag}.txt - - cat changelog.md > Changelog_edgehog_${tag}.md - - sed -i -E 's/\"//g' Link_report_edgehog_${tag}.txt - - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file Job_report_edgehog_${tag}.txt \ - --name ${AZURE_PATH}/Job_report_edgehog_${tag}.txt \ - --overwrite - - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file Link_report_edgehog_${tag}.txt \ - --name ${AZURE_PATH}/Link_report_edgehog_${tag}.txt \ - --overwrite - - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ - --sas-token $AZURE_STORAGE_SAS_TOKEN \ - --container-name $AZURE_CONTAINER_NAME \ - --file Changelog_edgehog_${tag}.md \ - --name ${AZURE_PATH}/Changelog_edgehog_${tag}.md \ - --overwrite - - cp .gitlab-ci/notification.json . - job_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Job_report_edgehog_${tag}.txt)" - job_report="$(echo $job_report | sed -E 's/\s.*$//')" - jq --arg job_var $job_report '.potentialAction[0].targets[0].uri = $job_var' notification.json > notification_1.json - - link_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Link_report_edgehog_${tag}.txt)" - link_report="$(echo $link_report | sed -E 's/\s.*$//')" - jq --arg link_var $link_report '.potentialAction[1].targets[0].uri = $link_var' notification_1.json > notification_2.json - - changelog_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Changelog_edgehog_${tag}.md)" - changelog_report="$(echo $changelog_report | sed -E 's/\s.*$//')" - jq --arg changelog_var $changelog_report '.potentialAction[2].targets[0].uri = $changelog_var' notification_2.json > notification_3.json - sed -i -E 's/\\"//g' notification_3.json - - jq --arg text "$(cat Job_message_edgehog_${tag}.txt)" '.text = $text' notification_3.json > notification_4.json - sed -i -E 's/\\n/ \\n\\n /g' notification_4.json - - curl -X POST -H "Content-Type: application/json" --data @notification_4.json $WEBHOOK - - cp Link_report_edgehog_${tag}.txt Link_report.txt - sed -i 's/\"//g' Link_report.txt - - echo "${changelog_report#?}" | cut -f1 -d"?" > changelog_link.txt - + - | + echo -e "The job results for all boards are listed below (also available by clicking on the **Job Report** button)." >> Job_message.txt + echo -e "The paths to all packages can be accessed by clicking on the **Link Report** button." >> Job_message.txt + echo -e "The changelog can be accessed by clicking on the **Changelog** button." >> Job_message.txt + echo -e "*We kindly ask developers to check job results so that in case of failures a fix to eventual bugs can be promptly made.*" >> Job_message.txt + + AZURE_PATH="edgehog/reports" + + if [ -n "$CI_COMMIT_TAG" ]; then + TAG_NAME=${CI_COMMIT_TAG} + AZURE_STORAGE_SAS_TOKEN="${AZURE_STORAGE_PUBLIC_SAS_TOKEN}" + AZURE_CONTAINER_NAME="${AZURE_PUBLIC_CONTAINER_NAME}" + else + TAG_NAME=$(date +%Y%m%d) + fi + - sh scripts/notify_message.sh $AZURE_PATH \ + $TAG_NAME \ + $AZURE_STORAGE_SAS_TOKEN \ + $AZURE_CONTAINER_NAME + artifacts: expire_in: 4 weeks paths: diff --git a/scripts/artifacts_name.sh b/scripts/artifacts_name.sh new file mode 100644 index 0000000000000000000000000000000000000000..ad6a32d332bc3c615ad54b0b80bc28cdf3742261 --- /dev/null +++ b/scripts/artifacts_name.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +TAG_NAME=$1 +DEPLOY_DATE=$2 + +export uboot_filename="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" +export uboot_filename_latest="seco_"$PROCESSOR"_"$BOARD"_uboot-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" +export kernel_filename="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.gz" +export kernel_filename_latest="seco_"$PROCESSOR"_"$BOARD"_kernel-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.gz" +export filesystem_name="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".tar.bz2" +export filesystem_name_latest="seco_"$PROCESSOR"_"$BOARD"_filesystem-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.tar.bz2" +export image_name="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE"."$IMAGE_EXTENSION"" +export image_name_latest="seco_"$PROCESSOR"_"$BOARD"_"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest."$IMAGE_EXTENSION"" +export bmap_name="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".rootfs.wic.bmap" +export bmap_name_latest="seco_"$PROCESSOR"_"$BOARD"_bmapfile-"$IMAGE_NAME"_"$KERNEL"_"$TAG_NAME"_latest.rootfs.wic.bmap" +export bundle_filename="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_"$DEPLOY_DATE".raucb" +export bundle_filename_latest="seco_"$PROCESSOR"_"$BOARD"_edgehog-bundle_"$KERNEL"_"$TAG_NAME"_latest.raucb" \ No newline at end of file diff --git a/scripts/deploy_artifacts.sh b/scripts/deploy_artifacts.sh new file mode 100644 index 0000000000000000000000000000000000000000..93c2d33b8a24d4aa5c27151d7a777f026c8afe3b --- /dev/null +++ b/scripts/deploy_artifacts.sh @@ -0,0 +1,185 @@ +#!/bin/ash + +BASE_DIRECTORY=$1 +ART_PATH=$2 +DEPLOY_PATH=$3 +AZURE_STORAGE_SAS_TOKEN=$4 +AZURE_CONTAINER_NAME=$5 +AZURE_PATH=$6 + +if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then + + echo "##################################################################" + echo "####################### BUNDLE FILE ############################" + echo "##################################################################" + + #Copy the bundle file and rename it + find $ART_PATH -iname *"$MACHINE.raucb" -exec cp -L {} $BASE_DIRECTORY/ \; + mv *raucb $BASE_DIRECTORY/$bundle_filename + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$bundle_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename \ + --overwrite + + if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$bundle_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename_latest \ + --overwrite + fi +fi + +case none in +*${UBOOT_FILE}*) echo "Not deploying U-Boot for this board since not present" ;; +*) + echo "##################################################################" + echo "######################## UBOOT #################################" + echo "##################################################################" + + #Compress the uboot package and create a tar.gz file + echo $ART_PATH + ls -la $ART_PATH + find $ART_PATH -iname $UBOOT_FILE -exec cp -L {} $BASE_DIRECTORY/ \; + echo "${UBOOT_FILE}" + ls -la + tar -czvf $BASE_DIRECTORY/$uboot_filename -C $BASE_DIRECTORY $UBOOT_FILE + ls -la + + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$uboot_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename \ + --overwrite + + if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$uboot_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename_latest \ + --overwrite + fi + echo "Finishing U-Boot upload" + ;; +esac + +case none in +*${KERNEL_FILE}*) echo "Not deploying Kernel for this board since not present" ;; +*) + echo "##################################################################" + echo "######################## KERNEL ################################" + echo "##################################################################" + + kernel_dir="$BASE_DIRECTORY/seco-kernel-$BOARD-$PROCESSOR" + mkdir -p $kernel_dir/boot $kernel_dir/lib + + #Find all the needed kernel packages and copy them inside the proper folders + find $BASE_DIRECTORY/$ART_PATH -iname $KERNEL_FILE \ + -exec cp -L {} $kernel_dir/boot \; + find $BASE_DIRECTORY/$ART_PATH -maxdepth 2 -iname *.dtb \ + -exec cp -L {} $kernel_dir/boot \; + find $BASE_DIRECTORY/$ART_PATH -iname *.dtbo \ + -exec cp -L {} $kernel_dir/boot \; + find $BASE_DIRECTORY/$ART_PATH -iname *fw*.bin \ + -exec cp -L {} $kernel_dir/boot \; + find $BASE_DIRECTORY/$ART_PATH -iname modules-seco-*.tgz \ + -exec cp -L {} $BASE_DIRECTORY/temp_mod.tgz \; + tar -xf $BASE_DIRECTORY/temp_mod.tgz -C $kernel_dir + rm $BASE_DIRECTORY/temp_mod.tgz + + #Compress the kernel package and create a tar.gz file + tar -czvf $BASE_DIRECTORY/$kernel_filename -C $kernel_dir boot lib + rm -rf $kernel_dir + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$kernel_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename \ + --overwrite + + if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$kernel_filename \ + --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename_latest \ + --overwrite + fi + echo "Finishing Kernel upload" + ;; +esac + +echo "##################################################################" +echo "###################### FILESYSTEM ##############################" +echo "##################################################################" +find $BASE_DIRECTORY/$ART_PATH -iname *."$FS_EXTENSION" \ + -exec cp -L {} $BASE_DIRECTORY/filesystemTMP.tar.bz2 \; +mv filesystemTMP.tar.bz2 $BASE_DIRECTORY/$filesystem_name +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$filesystem_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name \ + --overwrite + +if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$filesystem_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name_latest \ + --overwrite +fi + +echo "################################################################" +echo "####################### BMAP IMAGE ###########################" +echo "################################################################" + +#Copy the BMAP .wic image and rename it +find $BASE_DIRECTORY/$ART_PATH \ + -iname *rootfs."$IMAGE_EXTENSION" \ + -exec cp -L {} . \; +mv *rootfs."$IMAGE_EXTENSION" $BASE_DIRECTORY/$image_name +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$image_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$image_name \ + --overwrite + +if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$image_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$image_name_latest \ + --overwrite +fi + +echo "################################################################" +echo "####################### BMAP FILE ############################" +echo "################################################################" + +#Copy the bmap files and rename it +find $ART_PATH -iname *rootfs.wic.bmap -exec cp -L {} $BASE_DIRECTORY/ \; +mv *rootfs.wic.bmap $BASE_DIRECTORY/$bmap_name +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$bmap_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name \ + --overwrite + +if [ ! -n "$CI_COMMIT_TAG" ]; then + az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file $BASE_DIRECTORY/$bmap_name \ + --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name_latest \ + --overwrite +fi diff --git a/scripts/generate_report.sh b/scripts/generate_report.sh new file mode 100644 index 0000000000000000000000000000000000000000..cd3e82cc609465830d6ef1fc1d1212252fb8d0ee --- /dev/null +++ b/scripts/generate_report.sh @@ -0,0 +1,53 @@ +#!/bin/ash + +DEPLOY_PATH=$1 +AZURE_STORAGE_SAS_TOKEN=$2 +AZURE_CONTAINER_NAME=$3 +AZURE_PATH=$4 + +if [ "$CI_JOB_STATUS" == "success" ]; then + if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + fi + case none in + *${UBOOT_FILE}*) echo "Not deployed U-Boot for this board since not present" ;; + *) + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + ;; + esac + + case none in + *${KERNEL_FILE}*) echo "Not deployed Kernel for this board since not present" ;; + *) + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + ;; + esac + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$image_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + + if [ ! -n "$CI_COMMIT_TAG" ]; then + if [[ "${CI_JOB_NAME}" != *"embedded"* ]]; then + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bundle_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + fi + + case none in + *${UBOOT_FILE}*) echo "Not deployed U-Boot for this board since not present" ;; + *) + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$uboot_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + ;; + esac + + case none in + *${KERNEL_FILE}*) echo "Not deployed Kernel for this board since not present" ;; + *) + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$kernel_filename_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + ;; + esac + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$filesystem_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$image_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + echo -e $(az storage blob url --container-name $AZURE_CONTAINER_NAME --name $AZURE_PATH/$DEPLOY_PATH/$bmap_name_latest) | sed -E 's/\?s.*//' >> Link_report_"$BOARD"_"$IMAGE_NAME".txt + fi +else + echo -e "JOBS FAILED" >>Link_report_"$BOARD"_"$IMAGE_NAME".txt +fi diff --git a/scripts/notify_message.sh b/scripts/notify_message.sh new file mode 100644 index 0000000000000000000000000000000000000000..3f4633b1b7a16c69a079cc62f3f4faf42f0aee2a --- /dev/null +++ b/scripts/notify_message.sh @@ -0,0 +1,59 @@ +#!/bin/ash + +AZURE_PATH=$1 +TAG_NAME=$2 +AZURE_STORAGE_SAS_TOKEN=$3 +AZURE_CONTAINER_NAME=$4 + +cat Job_message.txt Job_message_*.txt >Job_message_edgehog_${TAG_NAME}.txt +cat Job_report_*.txt >Job_report_edgehog_${TAG_NAME}.txt +cat Link_report_*.txt >Link_report_edgehog_${TAG_NAME}.txt + +cat changelog.md >Changelog_edgehog_${TAG_NAME}.md + +sed -i -E 's/\"//g' Link_report_edgehog_${TAG_NAME}.txt + +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file Job_report_edgehog_${TAG_NAME}.txt \ + --name ${AZURE_PATH}/Job_report_edgehog_${TAG_NAME}.txt \ + --overwrite + +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file Link_report_edgehog_${TAG_NAME}.txt \ + --name ${AZURE_PATH}/Link_report_edgehog_${TAG_NAME}.txt \ + --overwrite + +az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT \ + --sas-token $AZURE_STORAGE_SAS_TOKEN \ + --container-name $AZURE_CONTAINER_NAME \ + --file Changelog_edgehog_${TAG_NAME}.md \ + --name ${AZURE_PATH}/Changelog_edgehog_${TAG_NAME}.md \ + --overwrite + +cp .gitlab-ci/notification.json . +job_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Job_report_edgehog_${TAG_NAME}.txt)" +job_report="$(echo $job_report | sed -E 's/\s.*$//')" +jq --arg job_var $job_report '.potentialAction[0].targets[0].uri = $job_var' notification.json >notification_1.json + +link_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Link_report_edgehog_${TAG_NAME}.txt)" +link_report="$(echo $link_report | sed -E 's/\s.*$//')" +jq --arg link_var $link_report '.potentialAction[1].targets[0].uri = $link_var' notification_1.json >notification_2.json + +changelog_report="$(az storage blob url --container-name $AZURE_CONTAINER_NAME --name ${AZURE_PATH}/Changelog_edgehog_${TAG_NAME}.md)" +changelog_report="$(echo $changelog_report | sed -E 's/\s.*$//')" +jq --arg changelog_var $changelog_report '.potentialAction[2].targets[0].uri = $changelog_var' notification_2.json >notification_3.json +sed -i -E 's/\\"//g' notification_3.json + +jq --arg text "$(cat Job_message_edgehog_${TAG_NAME}.txt)" '.text = $text' notification_3.json >notification_4.json +sed -i -E 's/\\n/ \\n\\n /g' notification_4.json + +curl -X POST -H "Content-Type: application/json" --data @notification_4.json $WEBHOOK + +cp Link_report_edgehog_${TAG_NAME}.txt Link_report.txt +sed -i 's/\"//g' Link_report.txt + +echo "${changelog_report#?}" | cut -f1 -d"?" >changelog_link.txt