Abbiamo già visto in passato (https://www.dopsitalia.com/script/44/Calcolare-Automaticamente-Numero-Versione-Repository-Pipeline-Azure-DevOps.aspx) come effettuare il versioning di un repository sfruttando una pipeline creata in Azure DevOps. Ma che cosa cambia se la pipeline è in realtà un workflow se il repository è su GitHub?
La risposta è piuttoto semplice e scontata: solo la sintassi. Di fatto, possiamo riutilizzare lo stesso identico tool, ovvero GitVersion, per recuperare automaticamente, in base allo stato del repository (considerando git tag, ref corrente, branch e così via) il numero di versione adatto sfruttando lo standard Semantic Versioning.
- name: Install GitVersion uses: gittools/actions/gitversion/setup@v0.9.7 with: versionSpec: '5.5.0' - name: Determine Version id: gitversion uses: gittools/actions/gitversion/execute@v0.9.7 with: useConfigFile: true
Se lo abbiamo a disposizione, possiamo anche referenziare un file di configurazione differente, così da specificare policy differenti per quanto riguarda le regole di validazione dei branch o di upgrade del numero di versione stesso. Oppure, possiamo crearne uno al volo:
- run: | cat << EOF > ./GitVersion.yml mode: Mainline branches: #{} release: regex: ^release(s)?[/-] mode: ContinuousDelivery tag: '' increment: Patch prevent-increment-of-merged-branch-version: true track-merge-target: false is-release-branch: false feature: regex: feature(s)?[/-] mode: ContinuousDeployment tag: feat increment: None prevent-increment-of-merged-branch-version: true track-merge-target: false hotfix: regex: (hotfix(es)?|config)[/-] mode: ContinuousDeployment tag: useBranchName increment: None prevent-increment-of-merged-branch-version: true track-merge-target: false pull-request: regex: (pull|pull\-requests|pr)[/-] mode: ContinuousDeployment tag: pr increment: None prevent-increment-of-merged-branch-version: true track-merge-target: false ignore: sha: [] merge-message-formats: {} EOF name: Create GitVersion configuration file shell: bash - name: Determine Version id: gitversion uses: gittools/actions/gitversion/execute@v0.9.7 with: useConfigFile: true configFilePath: GitVersion.yml additionalArguments: '/showConfig'
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare token per autenicarsi sulle API di GitHub
Sostituire la GitHub Action di login su private registry
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Creare una custom property in GitHub
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creare gruppi di client per Event Grid MQTT
Creare un webhook in Azure DevOps
Cancellare una run di un workflow di GitHub
Usare una container image come runner di GitHub Actions