fix: put entire version script in single shell block
Each command runs in separate shell - variables don't persist. Moving everything into one script block. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+9
-30
@@ -27,57 +27,36 @@ steps:
|
|||||||
image: alpine/git
|
image: alpine/git
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
# Get the latest tag or default to v0.0.0
|
set -e
|
||||||
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
||||||
echo "Latest tag: $LATEST_TAG"
|
echo "Latest tag: $LATEST_TAG"
|
||||||
|
|
||||||
# Parse current version (strip 'v' prefix using sed)
|
|
||||||
VERSION=$(echo "$LATEST_TAG" | sed 's/^v//')
|
VERSION=$(echo "$LATEST_TAG" | sed 's/^v//')
|
||||||
MAJOR=$(echo "$VERSION" | cut -d. -f1)
|
MAJOR=$(echo "$VERSION" | cut -d. -f1)
|
||||||
MINOR=$(echo "$VERSION" | cut -d. -f2)
|
MINOR=$(echo "$VERSION" | cut -d. -f2)
|
||||||
PATCH=$(echo "$VERSION" | cut -d. -f3)
|
PATCH=$(echo "$VERSION" | cut -d. -f3)
|
||||||
|
|
||||||
echo "Current: $MAJOR.$MINOR.$PATCH"
|
echo "Current: $MAJOR.$MINOR.$PATCH"
|
||||||
|
|
||||||
# Get commits since last tag
|
|
||||||
if [ "$LATEST_TAG" = "v0.0.0" ]; then
|
if [ "$LATEST_TAG" = "v0.0.0" ]; then
|
||||||
COMMITS=$(git log --pretty=format:"%s" HEAD)
|
COMMITS=$(git log --pretty=format:"%s" HEAD)
|
||||||
else
|
else
|
||||||
COMMITS=$(git log --pretty=format:"%s" "${LATEST_TAG}..HEAD")
|
COMMITS=$(git log --pretty=format:"%s" "${LATEST_TAG}..HEAD")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Determine bump type from conventional commits
|
|
||||||
BUMP="patch"
|
BUMP="patch"
|
||||||
if echo "$COMMITS" | grep -qiE "^feat(\(.+\))?!:|BREAKING CHANGE:"; then
|
if echo "$COMMITS" | grep -qiE "^feat(\(.+\))?!:|BREAKING CHANGE:"; then
|
||||||
BUMP="major"
|
BUMP="major"
|
||||||
elif echo "$COMMITS" | grep -qiE "^feat(\(.+\))?:"; then
|
elif echo "$COMMITS" | grep -qiE "^feat(\(.+\))?:"; then
|
||||||
BUMP="minor"
|
BUMP="minor"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Bump type: $BUMP"
|
echo "Bump type: $BUMP"
|
||||||
|
|
||||||
# Calculate new version
|
|
||||||
case $BUMP in
|
case $BUMP in
|
||||||
major)
|
major) MAJOR=$((MAJOR + 1)); MINOR=0; PATCH=0 ;;
|
||||||
MAJOR=$((MAJOR + 1))
|
minor) MINOR=$((MINOR + 1)); PATCH=0 ;;
|
||||||
MINOR=0
|
patch) PATCH=$((PATCH + 1)) ;;
|
||||||
PATCH=0
|
|
||||||
;;
|
|
||||||
minor)
|
|
||||||
MINOR=$((MINOR + 1))
|
|
||||||
PATCH=0
|
|
||||||
;;
|
|
||||||
patch)
|
|
||||||
PATCH=$((PATCH + 1))
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
echo "New version: $MAJOR.$MINOR.$PATCH"
|
||||||
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
echo "$MAJOR.$MINOR.$PATCH" > .version
|
||||||
echo "New version: $NEW_VERSION"
|
echo "v$MAJOR.$MINOR.$PATCH" > .tag
|
||||||
|
cat .version
|
||||||
# Save version for other steps
|
cat .tag
|
||||||
echo "$NEW_VERSION" > .version
|
|
||||||
echo "v${NEW_VERSION}" > .tag
|
|
||||||
depends_on: [build-and-test]
|
depends_on: [build-and-test]
|
||||||
|
|
||||||
# Package NuGet
|
# Package NuGet
|
||||||
|
|||||||
Reference in New Issue
Block a user