From e5c5746b2c269a5871a410d011d01059ed6e7c5d Mon Sep 17 00:00:00 2001 From: Tim Hadwen Date: Tue, 3 Feb 2026 07:12:57 +1000 Subject: [PATCH] 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 --- kibot-ci.yml | 48 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/kibot-ci.yml b/kibot-ci.yml index cb5d17a..852bab0 100644 --- a/kibot-ci.yml +++ b/kibot-ci.yml @@ -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 [[ -z "$VERSION" ]]; then - VERSION=$(git describe --tags 2>/dev/null || echo "$CI_COMMIT_SHORT_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="$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'