name: Versione da tag description: Valida il tag in compilazione e popola le variabili di versionamento. inputs: ref-name: description: Nome del tag o ref da elaborare. required: true outputs: appver: description: Versione applicativa in formato n.n.n.n. value: ${{ steps.versione.outputs.appver }} fullver: description: Versione completa, comprensiva di eventuale suffisso. value: ${{ steps.versione.outputs.fullver }} suffix: description: Suffisso estratto dal tag, comprensivo del trattino iniziale quando presente. value: ${{ steps.versione.outputs.suffix }} version: description: Versione normalizzata senza punti, mantenendo l'eventuale suffisso con trattino. value: ${{ steps.versione.outputs.version }} runs: using: composite steps: - name: Calcola versione da tag id: versione shell: bash run: | set -euo pipefail ref_name='${{ inputs.ref-name }}' if [[ -z "$ref_name" ]]; then echo "Input 'ref-name' mancante." exit 1 fi tag="${ref_name#v}" if [[ "$tag" =~ ^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)(-.+)?$ ]]; then appver="${BASH_REMATCH[1]}" suffix="${BASH_REMATCH[2]:-}" else echo "Formato tag non valido: '$ref_name'. Atteso: v1.0.0.0 oppure v1.0.0.0-suffisso" exit 1 fi fullver="$appver$suffix" version="${appver//./}$suffix" echo "appver=$appver" >> "$GITHUB_OUTPUT" echo "fullver=$fullver" >> "$GITHUB_OUTPUT" echo "suffix=$suffix" >> "$GITHUB_OUTPUT" echo "version=$version" >> "$GITHUB_OUTPUT"