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
pull/26/head
Jonatan Antoni 4 years ago committed by GitHub
parent 7ae1cf11a6
commit f76f0bda7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

@ -5,7 +5,8 @@
<description>CMSIS Embedded Compute Library</description>
<vendor>ARM</vendor>
<license>LICENSE.txt</license>
<url>https://www.keil.com/pack/</url>
<url>https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/pack-index/</url>
<repository type="git">https://github.com/ARM-software/CMSIS-DSP.git</repository>
<releases>
<release version="0.0.0">

@ -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 <format>] [tag-prefix]"
echo "$(basename $0) [-h|--help] [-f|--format <format>] [-u|--url <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 <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 " <release version=\"$1\">"
else
echo " <release version=\"$1\" date=\"$2\">"
echo -n " <release version=\"$1\""
if [ -n "$2" ]; then
echo -n " date=\"$2\""
fi
if [ -n "$4" ]; then
echo -n " url=\"$4\""
fi
echo ">"
echo -e "$3" | \
sed "s/^/ /" | \
sed "s/<br>//" | \
@ -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
@ -151,9 +162,13 @@ fi
for TAG in $TAGS; do
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

@ -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 "</releases>" ${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"

@ -0,0 +1,13 @@
#!/bin/bash
cat <<EOF
<?xml version="1.0" encoding="UTF-8" ?>
<index schemaVersion="1.0.0" xs:noNamespaceSchemaLocation="PackIndex.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<vendor>ARM</vendor>
<url>https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/pack-index/</url>
<timestamp>$(date -u +%FT%TZ)</timestamp>
<pindex>
<pdsc url="https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/pack-index/" vendor="ARM" name="CMSIS-DSP" version="$1"/>
</pindex>
</index>
EOF
Loading…
Cancel
Save