apiVersion: tekton.dev/v1 kind: Task metadata: name: nx-nodejs-version spec: params: - name: context type: string description: context directory default: "" - name: ref type: string description: Full Git ref string (e.g., refs/tags/v0.2.0) workspaces: - name: base description: Git-cloned source code results: - name: specDoamin description: Extracted domain name (e.g. user) - name: version description: Extracted project version (e.g. 0.2.0) steps: - name: verify-version image: mikefarah/yq:4.24.2 workingDir: /workspace/base/$(params.context)/source env: - name: HOME value: /workspace/base/$(params.context)/home script: | set -e echo "🔍 Extracting tag from Git ref..." FULL_REF="$(params.ref)" DOMAIN_FROM_REF=$(echo "$FULL_REF" | awk -F'[/-]' '{print $2}') TAG_FROM_REF=$(basename "$FULL_REF") # → 0.2.0 OPENAPI_FILE="specs/${DOMAIN_FROM_REF}/openapi.yaml" echo "📄 Reading version from openapi.yaml of ${OPENAPI_FILE}..." VERSION=$(yq '.info.version' "$OPENAPI_FILE") TAG_FROM_OPENAPI="${VERSION}" echo "🔁 Comparing Git tag and workspace version:" echo " - Git ref tag: $TAG_FROM_REF" echo " - openapi version: $TAG_FROM_OPENAPI" if [ "$TAG_FROM_REF" != "$TAG_FROM_OPENAPI" ]; then echo "❌ Mismatch! Git tag and openapi version are not the same." exit 1 fi echo "✅ Tag and version match: $VERSION" echo -n "$DOMAIN_FROM_REF" > /tekton/results/specDoamin echo -n "$VERSION" > /tekton/results/version