ci: release script
This commit is contained in:
37
.circleci/build-release.sh
Executable file
37
.circleci/build-release.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit script if you try to use an uninitialized variable.
|
||||
set -o nounset
|
||||
# Exit script if a statement returns a non-true return value.
|
||||
set -o errexit
|
||||
# Use the error status of the first failure, rather than that of the last item in a pipeline.
|
||||
set -o pipefail
|
||||
|
||||
RELEASE_VER=$(echo $CIRCLE_TAG | grep -Po "(?<=v)[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)")
|
||||
|
||||
if [ -z $RELEASE_VER ]; then
|
||||
echo "No release version provided"
|
||||
exit 1
|
||||
fi
|
||||
if [[ $RELEASE_VER =~ ^[0-9]\.[0-9]\.[0-9]-?.* ]]; then
|
||||
echo "Preparing release $RELEASE_VER"
|
||||
else
|
||||
echo "Release should has format 1.2.3[-meta], got $RELEASE_VER"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE_BRANCH=release-$RELEASE_VER
|
||||
|
||||
# Build plugin
|
||||
git checkout -b $RELEASE_BRANCH
|
||||
yarn install --pure-lockfile && yarn build
|
||||
|
||||
# Commit release
|
||||
git add --force dist/
|
||||
git commit -m "release $RELEASE_VER"
|
||||
|
||||
RELEASE_COMMIT_HASH=$(git log -n 1 | grep -Po "(?<=commit )[0-9a-z]{40}")
|
||||
echo $RELEASE_COMMIT_HASH
|
||||
|
||||
# Push release branch
|
||||
git push origin $RELEASE_BRANCH
|
||||
Reference in New Issue
Block a user