From f76f0bda7c21ec64a4aadbc01bac029f3bb475eb Mon Sep 17 00:00:00 2001 From: Jonatan Antoni Date: Thu, 30 Jun 2022 08:45:43 +0200 Subject: [PATCH] Enhanced release workflow to update self-hosted pack index. (#21) - Add GitHub pack-index branch as pack URL - Add GitHub repository to PDSC file - Enhance gen_changelog to put specific download URLs to each release in pdsc format - Enhance workflow to update pack-index branch --- .github/workflows/build.yaml | 28 ++++++++++++++++++++++++++-- ARM.CMSIS-DSP.pdsc | 5 +++-- Scripts/git/check_links.sh | 0 Scripts/git/gen_changelog.sh | 29 ++++++++++++++++++++++------- Scripts/git/gen_pack.sh | 5 ++++- Scripts/git/gen_pack_index.sh | 13 +++++++++++++ Scripts/git/git-configure.sh | 0 Scripts/git/git_describe.sh | 0 8 files changed, 68 insertions(+), 12 deletions(-) mode change 100644 => 100755 Scripts/git/check_links.sh mode change 100644 => 100755 Scripts/git/gen_changelog.sh mode change 100644 => 100755 Scripts/git/gen_pack.sh create mode 100755 Scripts/git/gen_pack_index.sh mode change 100644 => 100755 Scripts/git/git-configure.sh mode change 100644 => 100755 Scripts/git/git_describe.sh diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 319bffe7..92769f47 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -87,7 +87,7 @@ jobs: mkdir -p ~/.arm/Packs/.Web wget -O ~/.arm/Packs/.Web/ARM.CMSIS.pdsc https://www.keil.com/pack/ARM.CMSIS.pdsc echo "::add-matcher::.github/packchk.json" - /bin/bash ./Scripts/git/gen_pack.sh + /bin/bash ./Scripts/git/gen_pack.sh -k echo "::remove-matcher owner=packchk::" - name: Archive pack @@ -108,6 +108,30 @@ jobs: tag: ${{ github.ref }} overwrite: true + - name: Generate pack index + if: ${{ github.event_name == 'release' }} + run: | + VERSION=$(sed 's/refs\/tags\/v//' <<< $GITHUB_REF) + /bin/bash ./Scripts/git/gen_pack_index.sh ${VERSION} > /tmp/CMSIS-DSP.pidx + cp ./build/ARM.CMSIS-DSP.pdsc /tmp/ + + - uses: actions/checkout@v2 + if: ${{ github.event_name == 'release' }} + with: + ref: pack-index + + - name: Update pack index + if: ${{ github.event_name == 'release' }} + run: | + RELEASE=$(sed 's/refs\/tags\///' <<< $GITHUB_REF) + cp -f /tmp/CMSIS-DSP.pidx . + cp -f /tmp/ARM.CMSIS-DSP.pdsc . + git config user.name github-actions + git config user.email github-actions@github.com + git add . + git commit -m "Update pack index with release ${RELEASE}" + git push + - uses: actions/checkout@v2 if: ${{ github.event_name == 'release' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} with: @@ -129,7 +153,7 @@ jobs: - name: Publish documentation if: ${{ github.event_name == 'release' }} run: | - RELEASE=$(echo $GITHUB_REF | sed 's/refs\/tags\///') + RELEASE=$(sed 's/refs\/tags\///' <<< $GITHUB_REF) rm -rf ${RELEASE} mkdir -p ${RELEASE} rm -f latest diff --git a/ARM.CMSIS-DSP.pdsc b/ARM.CMSIS-DSP.pdsc index 275246b9..01c7936a 100644 --- a/ARM.CMSIS-DSP.pdsc +++ b/ARM.CMSIS-DSP.pdsc @@ -5,8 +5,9 @@ CMSIS Embedded Compute Library ARM LICENSE.txt - https://www.keil.com/pack/ - + https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/pack-index/ + https://github.com/ARM-software/CMSIS-DSP.git + Active development ... diff --git a/Scripts/git/check_links.sh b/Scripts/git/check_links.sh old mode 100644 new mode 100755 diff --git a/Scripts/git/gen_changelog.sh b/Scripts/git/gen_changelog.sh old mode 100644 new mode 100755 index c03b024d..34447b67 --- a/Scripts/git/gen_changelog.sh +++ b/Scripts/git/gen_changelog.sh @@ -4,7 +4,7 @@ DIRNAME=$(dirname $(readlink -f $0)) DESCRIBE=$(readlink -f ${DIRNAME}/git_describe.sh) function usage { - echo "$(basename $0) [-h|--help] [-f|--format ] [tag-prefix]" + echo "$(basename $0) [-h|--help] [-f|--format ] [-u|--url ] [tag-prefix]" echo "" echo "Arguments:" echo " -h|--help Print this usage message and exit." @@ -14,6 +14,8 @@ function usage { echo " dxy Release notes for Doxygen" echo " html Release notes for HTML" echo " -p|--pre Include latest pre-release." + echo " -u|--url Add url attribute to each release:" + echo " Placeholders are TAG, VERSION, DATE." echo " tag-prefix Prefix to filter tags." echo "" } @@ -41,11 +43,14 @@ function print_pdsc_head { } function print_pdsc { - if [ -z "$2" ]; then - echo " " - else - echo " " + echo -n " " echo -e "$3" | \ sed "s/^/ /" | \ sed "s/
//" | \ @@ -108,6 +113,7 @@ function print_html_tail { POSITIONAL=() FORMAT="text" PRERELEASE=0 +URL="" while [[ $# -gt 0 ]] do key="$1" @@ -126,6 +132,11 @@ do PRERELEASE=1 shift ;; + '-u'|'--url') + shift + URL=$1 + shift + ;; *) # unknown option POSITIONAL+=("$1") # save it in an array for later shift # past argument @@ -150,10 +161,14 @@ if [[ $PRERELEASE != 0 ]] && ! git rev-list "${PREFIX}${LATEST}" >/dev/null; the fi for TAG in $TAGS; do - TAG="${TAG#refs/tags/}" + TAG="${TAG#refs/tags/}" + VERSION="${TAG#${PREFIX}}" DESC=$(git tag -l -n99 --format "%(contents)" ${TAG} 2>/dev/null) DATE=$(git tag -l -n99 --format "%(taggerdate:short)" ${TAG} 2>/dev/null) - print_$FORMAT "${TAG#${PREFIX}}" "${DATE}" "${DESC}" + if [ -n "$URL" ]; then + DLURL=$(TAG=$TAG VERSION=$VERSION DATE=$DATE envsubst <<< $URL) + fi + print_$FORMAT "${VERSION}" "${DATE}" "${DESC}" "${DLURL}" done print_${FORMAT}_tail diff --git a/Scripts/git/gen_pack.sh b/Scripts/git/gen_pack.sh old mode 100644 new mode 100755 index 4979ff39..949375aa --- a/Scripts/git/gen_pack.sh +++ b/Scripts/git/gen_pack.sh @@ -118,6 +118,9 @@ PACK_DELETE_FILES="" # Specify patches to be applied PACK_PATCH_FILES="" +# Specify the pack download url pattern +PACK_URL="https://github.com/ARM-software/CMSIS-DSP/releases/download" + ############ DO NOT EDIT BELOW ########### echo Starting CMSIS-Pack Generation: `date` # Zip utility check @@ -184,7 +187,7 @@ last=$(grep -n "
" ${PACK_VENDOR}.${PACK_NAME}.pdsc | cut -d: -f1) let first-=1 let last+=1 head -n ${first} "./${PACK_VENDOR}.${PACK_NAME}.pdsc" > "${PACK_BUILD}/${PACK_VENDOR}.${PACK_NAME}.pdsc" -/bin/bash "${CHANGELOG}" -p -f pdsc 2>/dev/null | sed "s/^/ /" >> "${PACK_BUILD}/${PACK_VENDOR}.${PACK_NAME}.pdsc" +/bin/bash "${CHANGELOG}" -p -f pdsc -u "${PACK_URL}/\${TAG}/${PACK_VENDOR}.${PACK_NAME}.\${VERSION}.pack" 2>/dev/null | sed "s/^/ /" >> "${PACK_BUILD}/${PACK_VENDOR}.${PACK_NAME}.pdsc" tail -n +${last} "./${PACK_VENDOR}.${PACK_NAME}.pdsc" | \ sed -e "s/Cversion=\"[^\"]*\"/Cversion=\"${VERSION}\"/" >> "${PACK_BUILD}/${PACK_VENDOR}.${PACK_NAME}.pdsc" diff --git a/Scripts/git/gen_pack_index.sh b/Scripts/git/gen_pack_index.sh new file mode 100755 index 00000000..7d9f2e63 --- /dev/null +++ b/Scripts/git/gen_pack_index.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +cat < + + ARM + https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/pack-index/ + $(date -u +%FT%TZ) + + + + +EOF diff --git a/Scripts/git/git-configure.sh b/Scripts/git/git-configure.sh old mode 100644 new mode 100755 diff --git a/Scripts/git/git_describe.sh b/Scripts/git/git_describe.sh old mode 100644 new mode 100755