75 lines
2.9 KiB
Bash
75 lines
2.9 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
RELEASE_TRIGGER=${RELEASE_TRIGGER:-"Manual command-line makefile invocation"}
|
|
|
|
export GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME:-'STM32Square Auto-Release Script'}
|
|
export GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL:-'autorelease@stm32square.jaseg.de'}
|
|
|
|
if [ ! -z ${GITLAB_USER_EMAIL+x} ]; then
|
|
export GIT_COMMITTER_NAME="$GITLAB_USER_NAME"
|
|
export GIT_COMMITTER_EMAIL="$GITLAB_USER_EMAIL"
|
|
fi
|
|
|
|
TIMESTAMP=${TIMESTAMP:-$(date +%y-%m-%d)}
|
|
|
|
#git pull -X theirs --no-commit master
|
|
|
|
make clean all
|
|
git add svd mx_mcu_db prog_db chip_db
|
|
git commit -q --allow-empty -m "STM32Square Auto-Release $TIMESTAMP
|
|
|
|
This is an automatic release commit. Generation was invoked from:
|
|
$RELEASE_TRIGGER
|
|
|
|
Component versions:
|
|
|
|
$(cat build/com.st.stm32cube.ide.mcu.productdb.debug.jar.version)
|
|
SHA256: $(sha256sum build/com.st.stm32cube.ide.mcu.productdb.debug.jar)
|
|
|
|
$(cat build/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.linux64.jar.version)
|
|
SHA256: $(sha256sum build/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.linux64.jar)
|
|
|
|
$(cat build/com.st.stm32cube.common.mx.jar.version)
|
|
SHA256: $(sha256sum build/com.st.stm32cube.common.mx.jar)"
|
|
|
|
get_version () {
|
|
grep "$1 version:" build/$2.jar.version|cut -d: -f2|egrep -o '\S*'
|
|
}
|
|
|
|
strip_buildid () {
|
|
echo "$1"|rev|cut -d. -f2-|rev
|
|
}
|
|
|
|
IDE_VERSION=$(get_version IDE com.st.stm32cube.common.mx)
|
|
|
|
MX_BUILD=$(get_version Artifact com.st.stm32cube.common.mx)
|
|
MX_VERSION=$(strip_buildid $MX_BUILD)
|
|
|
|
CUBEPROG_BUILD=$(get_version Artifact com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.linux64)
|
|
CUBEPROG_VERSION=$(strip_buildid $CUBEPROG_BUILD)
|
|
|
|
PRODUCTDB_BUILD=$(get_version Artifact com.st.stm32cube.ide.mcu.productdb.debug)
|
|
PRODUCTDB_VERSION=$(strip_buildid $PRODUCTDB_BUILD)
|
|
|
|
git tag -a "v-nightly-$TIMESTAMP" -m "Nightly auto-release with tree $(git rev-parse HEAD:)"
|
|
|
|
# Ignore failures in the following lines: We only create a tag for each version the first time we see it.
|
|
git tag -a "v-ide-$IDE_VERSION" -m "Auto-release for STM32 Cube IDE version $IDE_VERSION" || true
|
|
|
|
git tag -a "v-mx-$MX_BUILD" -m "Auto-release for STM32 Cube MX build $MX_BUILD" || true
|
|
git tag -a "v-mx-$MX_VERSION" -m "Auto-release for STM32 Cube MX version $MX_VERSION" || true
|
|
|
|
git tag -a "v-cubeprog-$CUBEPROG_BUILD" -m "Auto-release for STM32 Cube Programmer build $CUBEPROG_BUILD" || true
|
|
git tag -a "v-cubeprog-$CUBEPROG_VERSION" -m "Auto-release for STM32 Cube Programmer version $CUBEPROG_VERSION" || true
|
|
|
|
git tag -a "v-productdb-$PRODUCTDB_BUILD" -m "Auto-release for STM32 Product Database build $PRODUCTDB_BUILD" || true
|
|
git tag -a "v-productdb-$PRODUCTDB_VERSION" -m "Auto-release for STM32 Product Database version $PRODUCTDB_VERSION" || true
|
|
|
|
if [ ! -z ${GITLAB_ACCESS_TOKEN+x} ]; then
|
|
echo "Access token found, pushing commit and tags"
|
|
git remote add -f ci-origin https://oauth2:${GITLAB_ACCESS_TOKEN}@gitlab.com/${CI_PROJECT_PATH}
|
|
git push --tags --force ci-origin HEAD:release
|
|
else
|
|
echo "No access token found. Not pushing anything."
|
|
fi
|