Fix version extraction: dev branch uses 'dev', main extracts from commit

- dev branch: always VERSION="dev"
- main branch: extract version from commit message (e.g., "V1.2")
- Add KIBOT_VAR_name to all kibot script sections
- Add asset link to release

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Tim Hadwen
2026-02-03 07:12:57 +10:00
parent 3778a453e8
commit e5c5746b2c

View File

@@ -51,14 +51,22 @@ extract_version:
stage: preflight
script:
- |
# Extract version from MR title (pattern: V followed by numbers and dots)
if [[ -n "$CI_MERGE_REQUEST_TITLE" ]]; then
VERSION=$(echo "$CI_MERGE_REQUEST_TITLE" | grep -oE 'V[0-9]+(\.[0-9]+)*' | head -1)
fi
# Version strategy:
# - dev branch: always "dev"
# - main branch: extract from commit message (e.g., "V1.2")
# Fallback to git tag or commit SHA
if [[ "$CI_COMMIT_BRANCH" == "main" ]]; then
# On main, extract version from commit message
VERSION=$(echo "$CI_COMMIT_MESSAGE" | grep -oE 'V[0-9]+(\.[0-9]+)*' | head -1)
if [[ -z "$VERSION" ]]; then
VERSION=$(git describe --tags 2>/dev/null || echo "$CI_COMMIT_SHORT_SHA")
VERSION="$CI_COMMIT_SHORT_SHA"
echo "Warning: No version found in commit message, using SHA"
fi
echo "Main branch version: $VERSION"
else
# On dev or any other branch, use "dev"
VERSION="dev"
echo "Dev branch version: $VERSION"
fi
echo "VERSION=$VERSION" >> build.env
@@ -173,7 +181,8 @@ generate_schematic:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
if [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch" ]; then
kibot -e ${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch \
@@ -188,7 +197,8 @@ generate_bom:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
if [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch" ]; then
kibot -e ${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch \
@@ -204,7 +214,8 @@ generate_3d:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
if [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_pcb" ]; then
kibot -e ${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch \
@@ -221,7 +232,8 @@ generate_gerbers:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
if [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_pcb" ]; then
kibot -e ${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch \
@@ -238,7 +250,8 @@ generate_position:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
if [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_pcb" ]; then
kibot -e ${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch \
@@ -255,7 +268,8 @@ generate_panel:
- |
export KIBOT_VAR_rev="${VERSION}"
export KIBOT_VAR_rev_pcb="${VERSION}"
echo "Using version: $VERSION"
export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1)
echo "Using version: $VERSION, name: $KIBOT_VAR_name"
# Find panel configuration
PANEL_JSON=$(find ${PROJECT_NAME} -name "*_panel.json" 2>/dev/null | head -1)
@@ -424,7 +438,15 @@ create_release:
artifacts: true
script:
- echo "Creating release for version $VERSION"
- RELEASE_ZIP="${PROJECT_NAME}_${VERSION}.zip"
- ASSET_URL="${PACKAGE_REGISTRY_URL}/${VERSION}/${RELEASE_ZIP}"
- echo "Release asset URL: $ASSET_URL"
release:
tag_name: '$VERSION'
name: 'Release $VERSION'
description: 'Automated release for $VERSION'
assets:
links:
- name: '${PROJECT_NAME}_${VERSION}.zip'
url: '${PACKAGE_REGISTRY_URL}/${VERSION}/${PROJECT_NAME}_${VERSION}.zip'
link_type: 'package'